File tree 2 files changed +11
-2
lines changed
shared/dataflow/codeql/dataflow
2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -170,6 +170,13 @@ signature module InputSig {
170
170
171
171
predicate simpleLocalFlowStep ( Node node1 , Node node2 ) ;
172
172
173
+ /**
174
+ * Holds if the data flow step from `node1` to `node2` can be used when
175
+ * computing flow-through summaries.
176
+ */
177
+ bindingset [ node1, node2]
178
+ default predicate flowThroughStepAllowed ( Node node1 , Node node2 ) { any ( ) }
179
+
173
180
/**
174
181
* Holds if data can flow from `node1` to `node2` through a non-local step
175
182
* that does not follow a call edge. For example, a step through a global
Original file line number Diff line number Diff line change @@ -551,7 +551,8 @@ module MakeImplCommon<InputSig Lang> {
551
551
// local flow
552
552
exists ( Node mid |
553
553
parameterValueFlowCand ( p , mid , read ) and
554
- simpleLocalFlowStep ( mid , node )
554
+ simpleLocalFlowStep ( mid , node ) and
555
+ flowThroughStepAllowed ( mid , node )
555
556
)
556
557
or
557
558
// read
@@ -670,7 +671,8 @@ module MakeImplCommon<InputSig Lang> {
670
671
// local flow
671
672
exists ( Node mid |
672
673
parameterValueFlow ( p , mid , read ) and
673
- simpleLocalFlowStep ( mid , node )
674
+ simpleLocalFlowStep ( mid , node ) and
675
+ flowThroughStepAllowed ( mid , node )
674
676
)
675
677
or
676
678
// read
You can’t perform that action at this time.
0 commit comments