File tree Expand file tree Collapse file tree
src/semmle/javascript/dataflow/internal
test/library-tests/TaintTracking Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,7 +53,12 @@ private SsaVariable getARefinementOf(SsaVariable variable) {
5353 */
5454private newtype TAccessPath =
5555 MkSsaRoot ( SsaVariable var ) {
56- not exists ( getRefinedVariable ( var ) )
56+ not exists ( getRefinedVariable ( var ) ) and
57+ not var .getSourceVariable ( ) .isCaptured ( )
58+ }
59+ or
60+ MkCapturedRoot ( LocalVariable var ) {
61+ var .isCaptured ( )
5762 }
5863 or
5964 MkThisRoot ( Function function ) { function .getThisBinder ( ) = function } or
@@ -78,6 +83,12 @@ class AccessPath extends TAccessPath {
7883 result = getARefinementOf * ( var ) .getAUseIn ( bb )
7984 )
8085 or
86+ exists ( Variable var |
87+ this = MkCapturedRoot ( var ) and
88+ result = var .getAnAccess ( ) and
89+ result .getBasicBlock ( ) = bb
90+ )
91+ or
8192 exists ( ThisExpr this_ |
8293 this = MkThisRoot ( this_ .getBinder ( ) ) and
8394 result = this_ and
Original file line number Diff line number Diff line change 1212| callbacks.js:44:17:44:24 | source() | callbacks.js:41:10:41:10 | x |
1313| callbacks.js:50:18:50:25 | source() | callbacks.js:30:29:30:29 | y |
1414| callbacks.js:51:18:51:25 | source() | callbacks.js:30:29:30:29 | y |
15- | captured-sanitizer.js:25:3:25:10 | source() | captured-sanitizer.js:13:12:13:12 | x |
1615| captured-sanitizer.js:25:3:25:10 | source() | captured-sanitizer.js:15:10:15:10 | x |
1716| closure.js:6:15:6:22 | source() | closure.js:8:8:8:31 | string. ... (taint) |
1817| closure.js:6:15:6:22 | source() | closure.js:9:8:9:25 | string.trim(taint) |
You can’t perform that action at this time.
0 commit comments