Skip to content

Commit ae013ba

Browse files
authored
Merge pull request #17235 from aschackmull/dataflow/fix-missing-subpaths
Dataflow: Fix missing subpaths due to type strengthening.
2 parents fb7b89f + 51c43a7 commit ae013ba

File tree

8 files changed

+795
-3
lines changed

8 files changed

+795
-3
lines changed

java/ql/test/library-tests/dataflow/collections/containerflow.expected

Lines changed: 36 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/test/library-tests/dataflow/subpaths/flow.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ nodes
3232
| A.java:27:12:27:25 | apply(...) : String | semmle.label | apply(...) : String |
3333
| A.java:27:20:27:24 | (...)... : Object | semmle.label | (...)... : Object |
3434
subpaths
35+
| A.java:14:44:14:54 | source(...) : Object | A.java:8:24:8:33 | arg : Object | A.java:9:12:9:17 | (...)... : Object | A.java:14:16:14:55 | propagateTaint(...) : String |
3536
| A.java:18:44:18:54 | source(...) : Object | A.java:8:24:8:33 | arg : Object | A.java:9:12:9:17 | (...)... : Object | A.java:18:16:18:55 | propagateTaint(...) : Object |
3637
| A.java:22:44:22:54 | source(...) : Object | A.java:26:41:26:48 | x : Object | A.java:27:12:27:25 | apply(...) : String | A.java:22:17:22:55 | apply(...) : String |
3738
| A.java:27:20:27:24 | (...)... : Object | A.java:22:24:22:33 | arg : String | A.java:22:39:22:41 | arg : String | A.java:27:12:27:25 | apply(...) : String |

java/ql/test/library-tests/frameworks/apache-collections/test.expected

Lines changed: 150 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/test/library-tests/frameworks/gson/test.expected

Lines changed: 33 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/test/library-tests/frameworks/guava/generated/collect/test.expected

Lines changed: 359 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/test/library-tests/frameworks/netty/generated/test.expected

Lines changed: 127 additions & 0 deletions
Large diffs are not rendered by default.

java/ql/test/library-tests/frameworks/spring/util/test.expected

Lines changed: 85 additions & 0 deletions
Large diffs are not rendered by default.

shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4878,12 +4878,13 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
48784878
PathNodeImpl arg, PathNodeImpl par, PathNodeImpl ret, PathNodeImpl out
48794879
) {
48804880
exists(
4881-
ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t, AccessPath apout,
4882-
PathNodeMid out0
4881+
ParamNodeEx p, NodeEx o, FlowState sout, DataFlowType t0, DataFlowType t,
4882+
AccessPath apout, PathNodeMid out0
48834883
|
48844884
pragma[only_bind_into](arg).getASuccessorImpl(_) = pragma[only_bind_into](out0) and
4885-
subpaths03(pragma[only_bind_into](arg), p, ret, o, sout, t, apout) and
4885+
subpaths03(pragma[only_bind_into](arg), p, ret, o, sout, t0, apout) and
48864886
hasSuccessor(pragma[only_bind_into](arg), par, p) and
4887+
strengthenType(o, t0, t) and
48874888
pathNode(out0, o, sout, _, _, t, apout, _, _)
48884889
|
48894890
out = out0 or out = out0.projectToSink(_)

0 commit comments

Comments
 (0)