diff --git a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql index 05656bdf8a0..2f299167893 100644 --- a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql +++ b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql @@ -59,7 +59,10 @@ predicate sourceBlock(Source s, Variable target, BlockExpr be) { sourceValueScope(s, target, be.getEnclosingBlock*()) } -predicate sinkBlock(Sink s, BlockExpr be) { be = s.asExpr().getEnclosingBlock() } +predicate sinkBlock(Sink s, BlockExpr be) { + AccessAfterLifetimeFlow::flow(_, s) and + be = s.asExpr().getEnclosingBlock() +} private predicate tcStep(BlockExpr a, BlockExpr b) { // propagate through function calls