@@ -12,15 +12,20 @@ predicate taintFlowUpdate(DataFlow::ParameterNode p1, DataFlow::ParameterNode p2
1212 exists ( DataFlow:: PostUpdateNode ret | localTaint ( p1 , ret ) | ret .getPreUpdateNode ( ) = p2 )
1313}
1414
15+ predicate summaryStep ( FlowSummaryNode src , FlowSummaryNode sink ) {
16+ FlowSummaryImpl:: Private:: Steps:: summaryLocalStep ( src .getSummaryNode ( ) , sink .getSummaryNode ( ) ,
17+ false ) or
18+ FlowSummaryImpl:: Private:: Steps:: summaryReadStep ( src .getSummaryNode ( ) , _, sink .getSummaryNode ( ) ) or
19+ FlowSummaryImpl:: Private:: Steps:: summaryStoreStep ( src .getSummaryNode ( ) , _, sink .getSummaryNode ( ) )
20+ }
21+
1522from DataFlow:: Node src , DataFlow:: Node sink
1623where
1724 (
1825 localAdditionalTaintStep ( src , sink ) or
1926 FlowSummaryImpl:: Private:: Steps:: summaryThroughStepTaint ( src , sink , _)
2027 ) and
21- not FlowSummaryImpl:: Private:: Steps:: summaryLocalStep ( src , sink , false ) and
22- not FlowSummaryImpl:: Private:: Steps:: summaryReadStep ( src , _, sink ) and
23- not FlowSummaryImpl:: Private:: Steps:: summaryStoreStep ( src , _, sink )
28+ not summaryStep ( src , sink )
2429 or
2530 exists ( ArgumentNode arg , MethodAccess call , DataFlow:: ParameterNode p , int i |
2631 src = arg and
0 commit comments