Never skip functionmodel inputs and outputs in path summaries

This commit is contained in:
Owen Mansel-Chan
2023-06-14 15:44:47 +01:00
parent d7c97f8759
commit cc320c5e9c

View File

@@ -232,7 +232,11 @@ class CastNode extends ExprNode {
* Holds if `n` should never be skipped over in the `PathGraph` and in path
* explanations.
*/
predicate neverSkipInPathGraph(Node n) { none() }
predicate neverSkipInPathGraph(Node n) {
exists(DataFlow::FunctionModel fm | fm.getAnInputNode(_) = n or fm.getAnOutputNode(_) = n)
or
exists(TaintTracking::FunctionModel fm | fm.getAnInputNode(_) = n or fm.getAnOutputNode(_) = n)
}
class DataFlowExpr = Expr;