C++: Improve performance by restricting isSource

This commit is contained in:
Robert Marsh
2021-08-23 17:06:59 -04:00
parent 83cc098412
commit 09ef8f639e

View File

@@ -84,7 +84,12 @@ class TaintToConcatenationConfiguration extends TaintTracking::Configuration {
class ExecTaintConfiguration extends TaintTracking2::Configuration {
ExecTaintConfiguration() { this = "ExecTaintConfiguration" }
override predicate isSource(DataFlow::Node source) { interestingConcatenation(_, source) }
override predicate isSource(DataFlow::Node source) {
exists(DataFlow::Node prevSink, TaintToConcatenationConfiguration conf |
conf.hasFlow(_, prevSink) and
interestingConcatenation(prevSink, source)
)
}
override predicate isSink(DataFlow::Node sink) {
shellCommand(sinkAsArgumentIndirection(sink), _)