Files
codeql/cpp/ql/src/Critical/NewDeleteArrayMismatch.ql
2019-04-23 14:45:27 +01:00

18 lines
584 B
Plaintext

/**
* @name 'new' object freed with 'delete[]'
* @description An object that was allocated with 'new' is being freed using 'delete[]'. Behavior in such cases is undefined and should be avoided. Use 'delete' instead.
* @kind problem
* @problem.severity warning
* @precision high
* @id cpp/new-delete-array-mismatch
* @tags reliability
*/
import NewDelete
from Expr alloc, Expr free, Expr freed
where
allocReaches(freed, alloc, "new") and
freeExprOrIndirect(free, freed, "delete[]")
select free, "This memory may have been allocated with '$@', not 'new[]'.", alloc, "new"