krealloc
API Overview
krealloc is an API in Linux kernel. This rule belongs to the api pair type. This rule is generated using APISpecGen.
Rule Description
tip
The resource acquired by krealloc must be properly released using kfree
info
- Tags: api pair
 - Parameter Index: N/A
 - CWE Type: CWE-404
 
Rule Code
    import cpp
import semmle.code.cpp.dataflow.new.DataFlow
DataFlow::Node getSource(FunctionCall fc){
  fc.getTarget().hasName("krealloc")
  and result.asExpr() = fc
}
DataFlow::Node getSink(FunctionCall fc){
  fc.getTarget().hasName("kfree")
  and result.asExpr() = fc.getArgument(0)
}
FunctionCall freeTarget(FunctionCall malloc){
  DataFlow::localFlow(getSource(malloc), getSink(result))
}
from FunctionCall fc
where fc.getTarget().hasName("krealloc")
      and not exists(
        FunctionCall free| 
        free = freeTarget(fc)
      )
select fc.getLocation()