File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed
cpp/ql/src/semmle/code/cpp/commons Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -81,19 +81,21 @@ int getBufferSize(Expr bufferExpr, Element why) {
8181 // buffer is a fixed size dynamic allocation
8282 isFixedSizeAllocationExpr ( bufferExpr , result ) and
8383 why = bufferExpr
84- ) or (
84+ ) or exists ( DataFlow :: ExprNode bufferExprNode |
8585 // dataflow (all sources must be the same size)
86+ bufferExprNode = DataFlow:: exprNode ( bufferExpr ) and
87+
8688 result = min ( Expr def |
87- DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , DataFlow :: exprNode ( bufferExpr ) ) |
89+ DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , bufferExprNode ) |
8890 getBufferSize ( def , _)
8991 ) and result = max ( Expr def |
90- DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , DataFlow :: exprNode ( bufferExpr ) ) |
92+ DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , bufferExprNode ) |
9193 getBufferSize ( def , _)
9294 ) and
9395
9496 // find reason
9597 exists ( Expr def |
96- DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , DataFlow :: exprNode ( bufferExpr ) ) |
98+ DataFlow:: localFlowStep ( DataFlow:: exprNode ( def ) , bufferExprNode ) |
9799 why = def or
98100 exists ( getBufferSize ( def , why ) )
99101 )
You can’t perform that action at this time.
0 commit comments