Skip to content

Commit 80777b8

Browse files
committed
JS: handle rephined variables in local access paths
1 parent 025cfe4 commit 80777b8

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ private PropAccess namedPropAccess(AccessPath base, PropertyName name, BasicBloc
4545

4646
private SsaVariable getRefinedVariable(SsaVariable variable) {
4747
result = variable.getDefinition().(SsaRefinementNode).getAnInput()
48+
or
49+
result = variable.getDefinition().(SsaPhiNode).getRephinedVariable()
4850
}
4951

5052
private SsaVariable getARefinementOf(SsaVariable variable) { variable = getRefinedVariable(result) }

javascript/ql/test/library-tests/TaintTracking/BasicTaintTracking.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ typeInferenceMismatch
171171
| promise.js:5:25:5:32 | source() | promise.js:5:8:5:33 | bluebir ... urce()) |
172172
| promise.js:10:24:10:31 | source() | promise.js:10:8:10:32 | Promise ... urce()) |
173173
| promise.js:12:20:12:27 | source() | promise.js:13:8:13:23 | resolver.promise |
174-
| refinement-sanitizer.js:19:17:19:24 | source() | refinement-sanitizer.js:33:10:33:21 | array.join() |
175174
| rxjs.js:3:1:3:8 | source() | rxjs.js:10:14:10:17 | data |
176175
| rxjs.js:13:1:13:8 | source() | rxjs.js:17:23:17:23 | x |
177176
| rxjs.js:13:1:13:8 | source() | rxjs.js:18:23:18:23 | x |

0 commit comments

Comments
 (0)