MEM53-CPP
: False positive due to flow through realloc
#420
Labels
Difficulty-Medium
A false positive or false negative report which is expected to take 1-5 days effort to address
false positive/false negative
An issue related to observed false positives or false negatives.
Impact-Low
Stardard-CERT-C++
Affected rules
MEM53-CPP
Description
In github/codeql#14637 we added taint-flow through the indirection of the pointer passed to
realloc
to the indirection of the result. That is, flow through the following example:this relies on the new taint-tracking library to distinguish between the result of
realloc(...)
, and the result of whatrealloc(...)
points to. Since the old AST-based taint-tracking library cannot do this this results in a FP in the testcases forMEM53-CPP
(that we accepted on thenext
branch here: #419)The query already tries to rule out
realloc
cases by excluding them in the definition of the taint-tracking configuration'sisSource
, but to get this query back to not reporting a FP here a barrier onrealloc
would have to be inserted.As @jketema points out the affected test is actually really sketchy since there’s no guarantee that memory allocated with
new
can safely berealloc
'ed. So maybe this scenario should be thought about more carefully by someone on your team.The text was updated successfully, but these errors were encountered: