Skip to content

Commit 06cae62

Browse files
committed
Format query
1 parent 512a659 commit 06cae62

File tree

1 file changed

+19
-22
lines changed

1 file changed

+19
-22
lines changed

java/src/security/Recursion/Recursion.ql

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,21 @@ class RecursionSource extends MethodCall {
2323
RecursionSource() { not isTestPackage(this.getCaller().getDeclaringType()) }
2424

2525
override string toString() {
26-
result = this.getCaller().toString() + " clls " + this.getCallee().toString()
26+
result = this.getCaller().toString() + " calls " + this.getCallee().toString()
2727
}
28-
2928
}
3029

3130
/**
3231
* Check if the Expr uses directly an argument of the enclosing function
3332
*/
3433
class ParameterOperation extends Expr {
3534
ParameterOperation() {
36-
this instanceof BinaryExpr or this instanceof UnaryAssignExpr
37-
and exists(
38-
VarAccess va |
39-
va.getVariable() = this.getEnclosingCallable().getAParameter() |
40-
this.getAChildExpr+() = va
41-
)
35+
this instanceof BinaryExpr
36+
or
37+
this instanceof UnaryAssignExpr and
38+
exists(VarAccess va | va.getVariable() = this.getEnclosingCallable().getAParameter() |
39+
this.getAChildExpr+() = va
40+
)
4241
}
4342
}
4443

@@ -57,25 +56,24 @@ module RecursiveConfig implements DataFlow::StateConfigSig {
5756
}
5857

5958
predicate isBarrier(DataFlow::Node node) {
60-
exists(MethodCall ma |
61-
ma = node.asExpr()
62-
and (
63-
exists(Expr e | e = ma.getAnArgument() and e instanceof ParameterOperation)
64-
// or exists(
65-
// VarAccess e|
66-
// e = ma.getAnArgument() |
67-
// e.getVariable().getAnAssignedValue().getAChildExpr() instanceof ParameterOperation
68-
// )
69-
)
59+
exists(MethodCall ma |
60+
ma = node.asExpr() and
61+
exists(Expr e | e = ma.getAnArgument() and e instanceof ParameterOperation)
62+
// or exists(
63+
// VarAccess e|
64+
// e = ma.getAnArgument() |
65+
// e.getVariable().getAnAssignedValue().getAChildExpr() instanceof ParameterOperation
66+
// )
7067
)
7168
}
7269

7370
/**
7471
* Weird but useful deduplication logic
7572
*/
7673
predicate isBarrierIn(DataFlow::Node node, FlowState state) {
77-
not node.asExpr() instanceof MethodCall
78-
or node.asExpr().(MethodCall).getCaller().getLocation().getStartLine() > state.getLocation().getStartLine()
74+
not node.asExpr() instanceof MethodCall or
75+
node.asExpr().(MethodCall).getCaller().getLocation().getStartLine() >
76+
state.getLocation().getStartLine()
7977
}
8078
}
8179

@@ -92,5 +90,4 @@ import RecursiveFlow::PathGraph
9290

9391
from RecursiveFlow::PathNode source, RecursiveFlow::PathNode sink
9492
where RecursiveFlow::flowPath(source, sink)
95-
// TODO(dm): de-duplicate results
96-
select sink.getNode(), source, sink, "Found a recursion: "
93+
select sink.getNode(), source, sink, "Found a recursion: "

0 commit comments

Comments
 (0)