Skip to content

Commit 65b4424

Browse files
committed
JS: Autoformat
1 parent 4f4f524 commit 65b4424

File tree

8 files changed

+70
-119
lines changed

8 files changed

+70
-119
lines changed

javascript/ql/src/semmle/javascript/Expr.qll

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2894,9 +2894,7 @@ class ImportMetaExpr extends @import_meta_expr, Expr {
28942894
*/
28952895
class GeneratedCodeExpr extends @generated_code_expr, Expr {
28962896
/** Gets the placeholder tag that was parsed as an expression. */
2897-
Templating::TemplatePlaceholderTag getPlaceholderTag() {
2898-
this = result.getEnclosingExpr()
2899-
}
2897+
Templating::TemplatePlaceholderTag getPlaceholderTag() { this = result.getEnclosingExpr() }
29002898

29012899
override string getAPrimaryQlClass() { result = "GeneratedCodeExpr" }
29022900
}

javascript/ql/src/semmle/javascript/frameworks/Fastify.qll

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -295,24 +295,14 @@ module Fastify {
295295
* Assumes the presense of a plugin that provides the `view` method, such as the `point-of-view` plugin.
296296
*/
297297
private class ViewCall extends Templating::TemplateInstantiaton::Range, DataFlow::CallNode {
298-
ViewCall() {
299-
this = any(ReplySource rep).ref().getAMethodCall("view")
300-
}
298+
ViewCall() { this = any(ReplySource rep).ref().getAMethodCall("view") }
301299

302-
override DataFlow::SourceNode getOutput() {
303-
result = getCallback(2).getParameter(1)
304-
}
300+
override DataFlow::SourceNode getOutput() { result = getCallback(2).getParameter(1) }
305301

306-
override DataFlow::Node getTemplateFileNode() {
307-
result = getArgument(0)
308-
}
302+
override DataFlow::Node getTemplateFileNode() { result = getArgument(0) }
309303

310-
override DataFlow::Node getTemplateContentNode() {
311-
none()
312-
}
304+
override DataFlow::Node getTemplateContentNode() { none() }
313305

314-
override DataFlow::Node getTemplateParamsNode() {
315-
result = getArgument(1)
316-
}
306+
override DataFlow::Node getTemplateParamsNode() { result = getArgument(1) }
317307
}
318308
}

javascript/ql/src/semmle/javascript/frameworks/Hapi.qll

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ module Hapi {
4141
/**
4242
* Gets a source node referring to the request toolkit parameter, usually named `h`.
4343
*/
44-
DataFlow::SourceNode getRequestToolkit() {
45-
result = getRequestToolkitParameter().flow()
46-
}
44+
DataFlow::SourceNode getRequestToolkit() { result = getRequestToolkitParameter().flow() }
4745
}
4846

4947
/**
@@ -255,24 +253,14 @@ module Hapi {
255253
* A call to `h.view('file', { ... })` seen as a template instantiation.
256254
*/
257255
private class ViewCall extends Templating::TemplateInstantiaton::Range, DataFlow::CallNode {
258-
ViewCall() {
259-
this = any(RouteHandler rh).getRequestToolkit().getAMethodCall("view")
260-
}
256+
ViewCall() { this = any(RouteHandler rh).getRequestToolkit().getAMethodCall("view") }
261257

262-
override DataFlow::SourceNode getOutput() {
263-
none()
264-
}
258+
override DataFlow::SourceNode getOutput() { none() }
265259

266-
override DataFlow::Node getTemplateFileNode() {
267-
result = getArgument(0)
268-
}
260+
override DataFlow::Node getTemplateFileNode() { result = getArgument(0) }
269261

270-
override DataFlow::Node getTemplateContentNode() {
271-
none()
272-
}
262+
override DataFlow::Node getTemplateContentNode() { none() }
273263

274-
override DataFlow::Node getTemplateParamsNode() {
275-
result = getArgument(1)
276-
}
264+
override DataFlow::Node getTemplateParamsNode() { result = getArgument(1) }
277265
}
278266
}

javascript/ql/src/semmle/javascript/frameworks/Koa.qll

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,7 @@ module Koa {
122122
}
123123

124124
/** Gets a source node that refers to this context object. */
125-
DataFlow::SourceNode ref() {
126-
result = ref(DataFlow::TypeTracker::end())
127-
}
125+
DataFlow::SourceNode ref() { result = ref(DataFlow::TypeTracker::end()) }
128126
}
129127

130128
/**
@@ -436,21 +434,13 @@ module Koa {
436434
private class RenderCall extends Templating::TemplateInstantiaton::Range, DataFlow::CallNode {
437435
ContextSource ctx;
438436

439-
RenderCall() {
440-
this = ctx.ref().getAMethodCall("render")
441-
}
437+
RenderCall() { this = ctx.ref().getAMethodCall("render") }
442438

443-
override DataFlow::SourceNode getOutput() {
444-
none()
445-
}
439+
override DataFlow::SourceNode getOutput() { none() }
446440

447-
override DataFlow::Node getTemplateFileNode() {
448-
result = getArgument(0)
449-
}
441+
override DataFlow::Node getTemplateFileNode() { result = getArgument(0) }
450442

451-
override DataFlow::Node getTemplateContentNode() {
452-
none()
453-
}
443+
override DataFlow::Node getTemplateContentNode() { none() }
454444

455445
override DataFlow::Node getTemplateParamsNode() {
456446
result = getArgument(1)

javascript/ql/src/semmle/javascript/frameworks/Templating.qll

Lines changed: 32 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,7 @@ module Templating {
125125
/**
126126
* Gets the innermost JavaScript expression containing this template tag, if any.
127127
*/
128-
Expr getEnclosingExpr() {
129-
expr_contains_template_tag_location(result, getLocation())
130-
}
128+
Expr getEnclosingExpr() { expr_contains_template_tag_location(result, getLocation()) }
131129
}
132130

133131
/**
@@ -210,9 +208,7 @@ module Templating {
210208
*
211209
* If not known, the relevant syntax will be determined by a heuristic.
212210
*/
213-
TemplateSyntax getTemplateSyntax() {
214-
result = range.getTemplateSyntax()
215-
}
211+
TemplateSyntax getTemplateSyntax() { result = range.getTemplateSyntax() }
216212
}
217213

218214
/** Companion module to the `TemplateInstantiation` class. */
@@ -244,7 +240,12 @@ module Templating {
244240
exists(TemplateInstantiaton inst, API::Node base, string name |
245241
base.getARhs() = inst.getTemplateParamsNode() and
246242
result = base.getMember(name) and
247-
succ = inst.getTemplateFile().getAnImportedFile*().getAPlaceholder().getInnerTopLevel().getAVariableUse(name)
243+
succ =
244+
inst.getTemplateFile()
245+
.getAnImportedFile*()
246+
.getAPlaceholder()
247+
.getInnerTopLevel()
248+
.getAVariableUse(name)
248249
)
249250
or
250251
exists(string prop, DataFlow::SourceNode prev |
@@ -322,7 +323,10 @@ module Templating {
322323

323324
/** Gets the template file referenced by this node. */
324325
final TemplateFile getTemplateFile() {
325-
result = this.getValue().(TemplateFileReferenceString).getTemplateFile(getFile().getParentContainer())
326+
result =
327+
this.getValue()
328+
.(TemplateFileReferenceString)
329+
.getTemplateFile(getFile().getParentContainer())
326330
}
327331
}
328332

@@ -386,18 +390,12 @@ module Templating {
386390
private class UpwardTraversalSuffix extends TemplateFileReferenceString {
387391
TemplateFileReferenceString original;
388392

389-
UpwardTraversalSuffix() {
390-
original = "../" + this
391-
}
393+
UpwardTraversalSuffix() { original = "../" + this }
392394

393-
override Folder getContextFolder() {
394-
result = original.getContextFolder().getParentContainer()
395-
}
395+
override Folder getContextFolder() { result = original.getContextFolder().getParentContainer() }
396396

397397
/** Gets the original string including the `../` prefix. */
398-
TemplateFileReferenceString getOriginal() {
399-
result = original
400-
}
398+
TemplateFileReferenceString getOriginal() { result = original }
401399
}
402400

403401
/**
@@ -484,7 +482,9 @@ module Templating {
484482
* and vice versa in `B/components/foo.js`.
485483
*/
486484
pragma[nomagic]
487-
private int getRankOfMatchingTarget(TemplateFile file, Folder baseFolder, TemplateFileReferenceString ref) {
485+
private int getRankOfMatchingTarget(
486+
TemplateFile file, Folder baseFolder, TemplateFileReferenceString ref
487+
) {
488488
file = getAMatchingTarget(ref) and
489489
baseFolder = ref.getContextFolder() and
490490
exists(string filePath, string refPath |
@@ -663,33 +663,31 @@ module Templating {
663663
string rawPath;
664664

665665
TemplateInclusionTag() {
666-
rawPath = getRawText().regexpCapture("[{<]% *(?:import|include|extend|require)s? *(?:[(] *)?['\"]?(.*?)['\"]? *(?:[)] *)?%[}>]", 1)
666+
rawPath =
667+
getRawText()
668+
.regexpCapture("[{<]% *(?:import|include|extend|require)s? *(?:[(] *)?['\"]?(.*?)['\"]? *(?:[)] *)?%[}>]",
669+
1)
667670
or
668671
rawPath = getRawText().regexpCapture("\\{\\{!?[<>](.*?)\\}\\}", 1)
669672
}
670673

671674
/** Gets the imported path (normalized). */
672-
string getPath() {
673-
result = rawPath.trim().replaceAll("\\", "/").regexpReplaceAll("^\\./", "")
674-
}
675+
string getPath() { result = rawPath.trim().replaceAll("\\", "/").regexpReplaceAll("^\\./", "") }
675676

676677
/** Gets the file referenced by this inclusion tag. */
677678
TemplateFile getImportedFile() {
678-
result = getPath().(TemplateFileReferenceString).getTemplateFile(getFile().getParentContainer())
679+
result =
680+
getPath().(TemplateFileReferenceString).getTemplateFile(getFile().getParentContainer())
679681
}
680682
}
681683

682684
/** The imported string from a template inclusion tag. */
683685
private class TemplateInclusionPathString extends TemplateFileReferenceString {
684686
TemplateInclusionTag tag;
685687

686-
TemplateInclusionPathString() {
687-
this = tag.getPath()
688-
}
688+
TemplateInclusionPathString() { this = tag.getPath() }
689689

690-
override Folder getContextFolder() {
691-
result = tag.getFile().getParentContainer()
692-
}
690+
override Folder getContextFolder() { result = tag.getFile().getParentContainer() }
693691
}
694692

695693
/**
@@ -698,13 +696,9 @@ module Templating {
698696
private class ConsolidateCall extends TemplateInstantiaton::Range, API::CallNode {
699697
string engine;
700698

701-
ConsolidateCall() {
702-
this = API::moduleImport("consolidate").getMember(engine).getACall()
703-
}
699+
ConsolidateCall() { this = API::moduleImport("consolidate").getMember(engine).getACall() }
704700

705-
override TemplateSyntax getTemplateSyntax() {
706-
result.getAPackageName() = engine
707-
}
701+
override TemplateSyntax getTemplateSyntax() { result.getAPackageName() = engine }
708702

709703
override DataFlow::SourceNode getOutput() {
710704
result = getParameter([1, 2]).getParameter(1).getAnImmediateUse()
@@ -713,16 +707,10 @@ module Templating {
713707
result = this
714708
}
715709

716-
override DataFlow::Node getTemplateFileNode() {
717-
result = getArgument(0)
718-
}
710+
override DataFlow::Node getTemplateFileNode() { result = getArgument(0) }
719711

720-
override DataFlow::Node getTemplateContentNode() {
721-
none()
722-
}
712+
override DataFlow::Node getTemplateContentNode() { none() }
723713

724-
override DataFlow::Node getTemplateParamsNode() {
725-
result = getArgument(1)
726-
}
714+
override DataFlow::Node getTemplateParamsNode() { result = getArgument(1) }
727715
}
728716
}

javascript/ql/src/semmle/javascript/security/dataflow/CodeInjectionCustomizations.qll

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,27 @@ module CodeInjection {
7777
//
7878
// For example, setting foo to `\` and bar to `, alert(1));//`, code injection is obtained.
7979
tag.isInScriptTag() and
80-
not tag.getEnclosingExpr() = getLastStringWithPlaceholderOnLine(tag.getLocation().getFile(), tag.getLocation().getStartLine())
80+
not tag.getEnclosingExpr() =
81+
getLastStringWithPlaceholderOnLine(tag.getLocation().getFile(),
82+
tag.getLocation().getStartLine())
8183
)
8284
}
8385
}
8486

8587
/** Gets the last string literal containing a template placeholder on the given line. */
8688
pragma[nomagic]
8789
private StringLiteral getLastStringWithPlaceholderOnLine(File file, int line) {
88-
result = max(StringLiteral lit, Location loc |
89-
loc = lit.getLocation() and
90-
loc.getFile() = file and
91-
loc.getStartLine() = line and
92-
lit = any(Templating::TemplatePlaceholderTag tag | tag.isEscapingInterpolation()).getEnclosingExpr()
93-
|
94-
lit
95-
order by
96-
loc.getStartColumn()
97-
)
90+
result =
91+
max(StringLiteral lit, Location loc |
92+
loc = lit.getLocation() and
93+
loc.getFile() = file and
94+
loc.getStartLine() = line and
95+
lit =
96+
any(Templating::TemplatePlaceholderTag tag | tag.isEscapingInterpolation())
97+
.getEnclosingExpr()
98+
|
99+
lit order by loc.getStartColumn()
100+
)
98101
}
99102

100103
/**

javascript/ql/src/semmle/javascript/security/dataflow/FileAccessToHttpCustomizations.qll

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,14 @@ module FileAccessToHttp {
4848
* A property access to `length`, seen as a sanitizer as it likely contains a number.
4949
*/
5050
private class LengthAccessAsSanitizer extends Sanitizer {
51-
LengthAccessAsSanitizer() {
52-
this.(DataFlow::PropRead).getPropertyName() = "length"
53-
}
51+
LengthAccessAsSanitizer() { this.(DataFlow::PropRead).getPropertyName() = "length" }
5452
}
5553

5654
/**
5755
* A generated code expression, seen as a sanitizer, to block flow from a file
5856
* sent to the client via a template.
5957
*/
6058
private class GeneratedCodeAsSanitizer extends Sanitizer {
61-
GeneratedCodeAsSanitizer() {
62-
this.asExpr() instanceof GeneratedCodeExpr
63-
}
59+
GeneratedCodeAsSanitizer() { this.asExpr() instanceof GeneratedCodeExpr }
6460
}
6561
}

javascript/ql/test/library-tests/frameworks/Templating/test.ql

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import javascript
22
import semmle.javascript.security.dataflow.Xss
33
import semmle.javascript.security.dataflow.CodeInjectionCustomizations
44

5-
query Templating::TemplateSyntax getTemplateInstantiationSyntax(Templating::TemplateInstantiaton inst) {
5+
query Templating::TemplateSyntax getTemplateInstantiationSyntax(
6+
Templating::TemplateInstantiaton inst
7+
) {
68
result = inst.getTemplateSyntax()
79
}
810

@@ -14,10 +16,6 @@ query Templating::TemplateFile getTargetFile(Templating::TemplateInstantiaton in
1416
result = inst.getTemplateFile()
1517
}
1618

17-
query DomBasedXss::Sink xssSink() {
18-
any()
19-
}
19+
query DomBasedXss::Sink xssSink() { any() }
2020

21-
query CodeInjection::Sink codeInjectionSink() {
22-
any()
23-
}
21+
query CodeInjection::Sink codeInjectionSink() { any() }

0 commit comments

Comments
 (0)