Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7a7ec06

Browse files
author
Benjamin Muskalla
committed
Simplify sink configuration
1 parent 1a4fd7b commit 7a7ec06

2 files changed

Lines changed: 7 additions & 13 deletions

File tree

java/ql/src/utils/model-generator/CaptureSinkModels.ql

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,22 @@ class PropagateToSinkConfiguration extends TaintTracking::Configuration {
1515
PropagateToSinkConfiguration() { this = "public methods calling sinks" }
1616

1717
override predicate isSource(DataFlow::Node source) {
18-
exists(MethodAccess ma |
19-
ma.getAChildExpr() = source.asExpr() and
20-
ma.getAnEnclosingStmt().getEnclosingCallable().isPublic() and
21-
ma.getAnEnclosingStmt().getEnclosingCallable().fromSource()
22-
)
18+
source.asParameter().getCallable().isPublic()
2319
}
2420

2521
override predicate isSink(DataFlow::Node sink) { sinkNode(sink, _) }
2622
}
2723

28-
string asInputArgument(Expr source) {
29-
result = "Argument[" + source.(Argument).getPosition() + "]"
30-
or
31-
result = "Argument[" + source.(VarAccess).getVariable().(Parameter).getPosition() + "]"
24+
string asInputArgument(DataFlow::Node source) {
25+
result = "Argument[" + source.asParameter().getPosition() + "]"
3226
}
3327

3428
string captureSink(Callable api) {
3529
exists(DataFlow::Node src, DataFlow::Node sink, PropagateToSinkConfiguration config, string kind |
3630
config.hasFlow(src, sink) and
3731
sinkNode(sink, kind) and
38-
api = src.asExpr().getEnclosingCallable() and
39-
result = asSinkModel(api, asInputArgument(src.asExpr()), kind)
32+
api = src.asParameter().getCallable() and
33+
result = asSinkModel(api, asInputArgument(src), kind)
4034
)
4135
}
4236

java/ql/test/utils/model-generator/p/Sinks.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
public class Sinks {
1212

13-
public Path copyFileToDirectory(final Path sourceFile, final Path targetDirectory, final CopyOption... copyOptions) throws IOException {
14-
return Files.copy(sourceFile, targetDirectory.resolve(sourceFile.getFileName()), copyOptions);
13+
public Path copyFileToDirectory(final Path sourceFile, final Path targetFile, final CopyOption... copyOptions) throws IOException {
14+
return Files.copy(sourceFile, targetFile, copyOptions);
1515
}
1616

1717
public String readUrl(final URL url, Charset encoding) throws IOException {

0 commit comments

Comments
 (0)