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 @@ -128,7 +128,9 @@ abstract class Replacement extends DataFlow::Node {
128128 exists ( Replacement pred | pred = this .getPreviousReplacement ( ) |
129129 if pred .escapes ( _, metachar )
130130 then result = pred
131- else result = pred .getAnEarlierEscaping ( metachar )
131+ else (
132+ not pred .unescapes ( metachar , _) and result = pred .getAnEarlierEscaping ( metachar )
133+ )
132134 )
133135 }
134136
@@ -140,7 +142,9 @@ abstract class Replacement extends DataFlow::Node {
140142 exists ( Replacement succ | this = succ .getPreviousReplacement ( ) |
141143 if succ .unescapes ( metachar , _)
142144 then result = succ
143- else result = succ .getALaterUnescaping ( metachar )
145+ else (
146+ not succ .escapes ( _, metachar ) and result = succ .getALaterUnescaping ( metachar )
147+ )
144148 )
145149 }
146150}
Original file line number Diff line number Diff line change @@ -90,3 +90,7 @@ function testWithCapturedVar(x) {
9090 captured = captured . replace ( / \\ / g, "\\\\" ) ;
9191 } ) ( ) ;
9292}
93+
94+ function encodeDecodeEncode ( s ) {
95+ return goodEncode ( goodDecode ( goodEncode ( s ) ) ) ;
96+ }
You can’t perform that action at this time.
0 commit comments