Java: Refactor PolynomialReDoS.ql

This commit is contained in:
Anders Schack-Mulligen
2023-03-10 11:17:40 +01:00
parent f53a05bf13
commit da273269cb
3 changed files with 40 additions and 11 deletions

View File

@@ -15,12 +15,14 @@
import java
import semmle.code.java.security.regexp.PolynomialReDoSQuery
import DataFlow::PathGraph
import PolynomialRedosFlow::PathGraph
from
DataFlow::PathNode source, DataFlow::PathNode sink,
PolynomialRedosFlow::PathNode source, PolynomialRedosFlow::PathNode sink,
SuperlinearBackTracking::PolynomialBackTrackingTerm regexp
where hasPolynomialReDoSResult(source, sink, regexp)
where
PolynomialRedosFlow::hasFlowPath(source, sink) and
regexp.getRootTerm() = sink.getNode().(PolynomialRedosSink).getRegExp()
select sink, source, sink,
"This $@ that depends on a $@ may run slow on strings " + regexp.getPrefixMessage() +
"with many repetitions of '" + regexp.getPumpString() + "'.", regexp, "regular expression",