Skip to main content

inflatebackinit

API Overview

inflateBackInit is an API in zlib. This rule belongs to the api pair type. This rule is generated using ChatDetector.

Rule Description

tip

Parameter 1 of inflateBackInit must be released by calling inflateBackEnd, with the same object passed as the 1-th argument to inflateBackEnd

info
  • Tags: api pair
  • Parameter Index: 0
  • CWE Type: CWE-404

Rule Code

import cpp
import semmle.code.cpp.dataflow.new.DataFlow


DataFlow::Node getSource(FunctionCall fc){
fc.getTarget().hasName("inflateBackInit")
and result.asExpr() = fc.getArgument(0)
}

DataFlow::Node getSink(FunctionCall fc){
fc.getTarget().hasName("inflateBackEnd")
and result.asExpr() = fc.getArgument(0)
}

FunctionCall freeTarget(FunctionCall malloc){
DataFlow::localFlow(getSource(malloc), getSink(result))
}

from FunctionCall fc
where fc.getTarget().hasName("inflateBackInit")
and not exists(
FunctionCall free|
free = freeTarget(fc)
)
select fc.getLocation()