File tree Expand file tree Collapse file tree
cpp/ql/lib/semmle/code/cpp/security/flowafterfree Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -139,6 +139,7 @@ private module ParameterSinks {
139139}
140140
141141private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplCommon
142+ private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate
142143
143144/**
144145 * Holds if `n` represents the expression `e`, and `e` is a pointer that is
@@ -149,11 +150,11 @@ private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplCommon
149150predicate isUse ( DataFlow:: Node n , Expr e ) {
150151 isUse0 ( e ) and n .asExpr ( ) = e
151152 or
152- exists ( CallInstruction call , InitializeParameterInstruction init |
153+ exists ( DataFlowCall call , InitializeParameterInstruction init |
153154 n .asOperand ( ) .getDef ( ) .getUnconvertedResultExpression ( ) = e and
154155 pragma [ only_bind_into ] ( init ) = ParameterSinks:: getAnAlwaysDereferencedParameter ( ) and
155156 viableParamArg ( call , DataFlow:: instructionNode ( init ) , n ) and
156157 pragma [ only_bind_out ] ( init .getEnclosingFunction ( ) ) =
157- pragma [ only_bind_out ] ( call .getStaticCallTarget ( ) )
158+ pragma [ only_bind_out ] ( call .asCallInstruction ( ) . getStaticCallTarget ( ) )
158159 )
159160}
You can’t perform that action at this time.
0 commit comments