We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e0aeea0 commit d304022Copy full SHA for d304022
cpp/ql/src/Critical/DoubleFree.ql
@@ -31,6 +31,14 @@ predicate isExFreePoolCall(FunctionCall fc) {
31
fc.getTarget().hasGlobalName("ExFreePool")
32
}
33
34
+/**
35
+ * `dealloc1` is a deallocation expression and `e` is an expression such
36
+ * that is deallocated by a deallocation expression, and the `(dealloc1, e)` pair
37
+ * should be excluded by the `FlowFromFree` library.
38
+ *
39
+ * Note that `e` is not necessarily the expression deallocated by `dealloc1`. It will
40
+ * be bound to the second deallocation as identified by the `FlowFromFree` library.
41
+ */
42
bindingset[dealloc1, e]
43
predicate isExcludeFreePair(DeallocationExpr dealloc1, Expr e) {
44
exists(DeallocationExpr dealloc2 | isFree(_, e, dealloc2) |
0 commit comments