Skip to content

Commit e104136

Browse files
committed
C++: Cache DefaultTaintTracking
This should speed up the overall suite, where `DefaultTaintTracking` is used in several queries.
1 parent abe7aee commit e104136

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

cpp/ql/src/semmle/code/cpp/ir/dataflow/DefaultTaintTracking.qll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,13 +343,15 @@ private Element adjustedSink(DataFlow::Node sink) {
343343
result.(AssignOperation).getAnOperand() = sink.asExpr()
344344
}
345345

346+
cached
346347
predicate tainted(Expr source, Element tainted) {
347348
exists(DefaultTaintTrackingCfg cfg, DataFlow::Node sink |
348349
cfg.hasFlow(getNodeForSource(source), sink) and
349350
tainted = adjustedSink(sink)
350351
)
351352
}
352353

354+
cached
353355
predicate taintedIncludingGlobalVars(Expr source, Element tainted, string globalVar) {
354356
tainted(source, tainted) and
355357
globalVar = ""

0 commit comments

Comments
 (0)