File tree Expand file tree Collapse file tree
test/query-tests/Security/CWE-116/DoubleEscaping Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -135,7 +135,9 @@ abstract class Replacement extends DataFlow::Node {
135135 exists ( Replacement pred | pred = this .getPreviousReplacement ( ) |
136136 if pred .escapes ( _, metachar )
137137 then result = pred
138- else result = pred .getAnEarlierEscaping ( metachar )
138+ else (
139+ not pred .unescapes ( metachar , _) and result = pred .getAnEarlierEscaping ( metachar )
140+ )
139141 )
140142 }
141143
@@ -147,7 +149,9 @@ abstract class Replacement extends DataFlow::Node {
147149 exists ( Replacement succ | this = succ .getPreviousReplacement ( ) |
148150 if succ .unescapes ( metachar , _)
149151 then result = succ
150- else result = succ .getALaterUnescaping ( metachar )
152+ else (
153+ not succ .escapes ( _, metachar ) and result = succ .getALaterUnescaping ( metachar )
154+ )
151155 )
152156 }
153157}
Original file line number Diff line number Diff line change @@ -130,3 +130,7 @@ function testWithCapturedVar(x) {
130130 captured = captured . replace ( / \\ / g, "\\\\" ) ;
131131 } ) ( ) ;
132132}
133+
134+ function cloneAndStringify ( s ) {
135+ return JSON . stringify ( JSON . parse ( JSON . stringify ( s ) ) ) ;
136+ }
You can’t perform that action at this time.
0 commit comments