@@ -25,28 +25,15 @@ class RemoteFlowSourceReach extends TaintTracking::Configuration {
25
25
}
26
26
27
27
override predicate isSink ( DataFlow:: Node node ) {
28
- not node .getLocation ( ) .getFile ( ) instanceof IgnoredFile and
29
- (
30
- node instanceof RemoteFlowSource
31
- or
32
- this .isAdditionalFlowStep ( _, node )
33
- ) and
34
- // In september 2021 we changed how we do taint-propagation for method calls (mostly
35
- // relating to modeled frameworks/libraries). We used to do `obj -> obj.meth` and
36
- // `obj.meth -> obj.meth()` in two separate steps, and now do them in one
37
- // `obj -> obj.meth()`. To be able to compare the overall reach between these two
38
- // version, we don't want this query to alert us to the fact that we no longer taint
39
- // the node in the middle (since that is just noise).
40
- // see https://github.com/github/codeql/pull/6349
28
+ not node .getLocation ( ) .getFile ( ) instanceof IgnoredFile
29
+ // We could try to reduce the number of sinks in this configuration, by only
30
+ // allowing something that is on one end of a localFlowStep, readStep or storeStep,
31
+ // however, it's a brittle solution that requires us to remember to update this file
32
+ // if/when adding something new to the data-flow library.
41
33
//
42
- // We should be able to remove the following few lines of code once we don't care to
43
- // compare with the old (before September 2021) way of doing taint-propagation for
44
- // method calls.
45
- not exists ( DataFlow:: MethodCallNode c |
46
- node = c .getFunction ( ) and
47
- this .isAdditionalFlowStep ( c .getObject ( ) , node ) and
48
- this .isAdditionalFlowStep ( node , c )
49
- )
34
+ // From testing on a few projects, trying to reduce the number of nodes, we only
35
+ // gain a reduction in the range of 40%, and while that's nice, it doesn't seem
36
+ // worth it to me for a meta query.
50
37
}
51
38
}
52
39
0 commit comments