@@ -607,9 +607,9 @@ private module Stage1 {
607607
608608 pragma [ nomagic]
609609 predicate callMayFlowThroughRev ( DataFlowCall call , Configuration config ) {
610- exists ( Node node , boolean toReturn |
611- revFlow ( node , toReturn , config ) and
612- revFlowInToReturn ( call , node , config ) and
610+ exists ( ArgNode arg , boolean toReturn |
611+ revFlow ( arg , toReturn , config ) and
612+ revFlowInToReturn ( call , arg , config ) and
613613 revFlowIsReturned ( call , toReturn , config )
614614 )
615615 }
@@ -838,12 +838,11 @@ private module Stage2 {
838838
839839 pragma [ nomagic]
840840 private predicate flowThroughOutOfCall (
841- DataFlowCall call , ReturnNodeExt node1 , Node node2 , boolean allowsFieldFlow ,
842- Configuration config
841+ DataFlowCall call , ReturnNodeExt ret , Node out , boolean allowsFieldFlow , Configuration config
843842 ) {
844- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
843+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
845844 PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
846- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
845+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
847846 pragma [ only_bind_into ] ( config ) )
848847 }
849848
@@ -1029,22 +1028,22 @@ private module Stage2 {
10291028
10301029 pragma [ nomagic]
10311030 private predicate callMayFlowThroughFwd ( DataFlowCall call , Configuration config ) {
1032- exists ( Ap argAp0 , Node node , Cc cc , ApOption argAp , Ap ap |
1033- fwdFlow ( node , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
1031+ exists ( Ap argAp0 , Node out , Cc cc , ApOption argAp , Ap ap |
1032+ fwdFlow ( out , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
10341033 pragma [ only_bind_into ] ( config ) ) and
1035- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
1034+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
10361035 fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
10371036 pragma [ only_bind_into ] ( config ) )
10381037 )
10391038 }
10401039
10411040 pragma [ nomagic]
10421041 private predicate flowThroughIntoCall (
1043- DataFlowCall call , ArgNode node1 , ParamNode node2 , boolean allowsFieldFlow , Configuration config
1042+ DataFlowCall call , ArgNode arg , ParamNode p , boolean allowsFieldFlow , Configuration config
10441043 ) {
1045- flowIntoCall ( call , node1 , node2 , allowsFieldFlow , config ) and
1046- fwdFlow ( node1 , _, _, _, pragma [ only_bind_into ] ( config ) ) and
1047- PrevStage:: parameterMayFlowThrough ( node2 , _, _, pragma [ only_bind_into ] ( config ) ) and
1044+ flowIntoCall ( call , arg , p , allowsFieldFlow , config ) and
1045+ fwdFlow ( arg , _, _, _, pragma [ only_bind_into ] ( config ) ) and
1046+ PrevStage:: parameterMayFlowThrough ( p , _, _, pragma [ only_bind_into ] ( config ) ) and
10481047 callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
10491048 }
10501049
@@ -1256,9 +1255,9 @@ private module Stage2 {
12561255
12571256 pragma [ nomagic]
12581257 predicate callMayFlowThroughRev ( DataFlowCall call , Configuration config ) {
1259- exists ( Ap returnAp0 , Node node , boolean toReturn , ApOption returnAp , Ap ap |
1260- revFlow ( node , toReturn , returnAp , ap , config ) and
1261- revFlowInToReturn ( call , node , returnAp0 , ap , config ) and
1258+ exists ( Ap returnAp0 , ArgNode arg , boolean toReturn , ApOption returnAp , Ap ap |
1259+ revFlow ( arg , toReturn , returnAp , ap , config ) and
1260+ revFlowInToReturn ( call , arg , returnAp0 , ap , config ) and
12621261 revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
12631262 )
12641263 }
@@ -1513,12 +1512,11 @@ private module Stage3 {
15131512
15141513 pragma [ nomagic]
15151514 private predicate flowThroughOutOfCall (
1516- DataFlowCall call , ReturnNodeExt node1 , Node node2 , boolean allowsFieldFlow ,
1517- Configuration config
1515+ DataFlowCall call , ReturnNodeExt ret , Node out , boolean allowsFieldFlow , Configuration config
15181516 ) {
1519- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
1517+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
15201518 PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
1521- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
1519+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
15221520 pragma [ only_bind_into ] ( config ) )
15231521 }
15241522
@@ -1711,22 +1709,22 @@ private module Stage3 {
17111709
17121710 pragma [ nomagic]
17131711 private predicate callMayFlowThroughFwd ( DataFlowCall call , Configuration config ) {
1714- exists ( Ap argAp0 , Node node , Cc cc , ApOption argAp , Ap ap |
1715- fwdFlow ( node , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
1712+ exists ( Ap argAp0 , Node out , Cc cc , ApOption argAp , Ap ap |
1713+ fwdFlow ( out , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
17161714 pragma [ only_bind_into ] ( config ) ) and
1717- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
1715+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
17181716 fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
17191717 pragma [ only_bind_into ] ( config ) )
17201718 )
17211719 }
17221720
17231721 pragma [ nomagic]
17241722 private predicate flowThroughIntoCall (
1725- DataFlowCall call , ArgNode node1 , ParamNode node2 , boolean allowsFieldFlow , Configuration config
1723+ DataFlowCall call , ArgNode arg , ParamNode p , boolean allowsFieldFlow , Configuration config
17261724 ) {
1727- flowIntoCall ( call , node1 , node2 , allowsFieldFlow , config ) and
1728- fwdFlow ( node1 , _, _, _, pragma [ only_bind_into ] ( config ) ) and
1729- PrevStage:: parameterMayFlowThrough ( node2 , _, _, pragma [ only_bind_into ] ( config ) ) and
1725+ flowIntoCall ( call , arg , p , allowsFieldFlow , config ) and
1726+ fwdFlow ( arg , _, _, _, pragma [ only_bind_into ] ( config ) ) and
1727+ PrevStage:: parameterMayFlowThrough ( p , _, _, pragma [ only_bind_into ] ( config ) ) and
17301728 callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
17311729 }
17321730
@@ -1938,9 +1936,9 @@ private module Stage3 {
19381936
19391937 pragma [ nomagic]
19401938 predicate callMayFlowThroughRev ( DataFlowCall call , Configuration config ) {
1941- exists ( Ap returnAp0 , Node node , boolean toReturn , ApOption returnAp , Ap ap |
1942- revFlow ( node , toReturn , returnAp , ap , config ) and
1943- revFlowInToReturn ( call , node , returnAp0 , ap , config ) and
1939+ exists ( Ap returnAp0 , ArgNode arg , boolean toReturn , ApOption returnAp , Ap ap |
1940+ revFlow ( arg , toReturn , returnAp , ap , config ) and
1941+ revFlowInToReturn ( call , arg , returnAp0 , ap , config ) and
19441942 revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
19451943 )
19461944 }
@@ -2269,12 +2267,11 @@ private module Stage4 {
22692267
22702268 pragma [ nomagic]
22712269 private predicate flowThroughOutOfCall (
2272- DataFlowCall call , ReturnNodeExt node1 , Node node2 , boolean allowsFieldFlow ,
2273- Configuration config
2270+ DataFlowCall call , ReturnNodeExt ret , Node out , boolean allowsFieldFlow , Configuration config
22742271 ) {
2275- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
2272+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
22762273 PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
2277- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
2274+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
22782275 pragma [ only_bind_into ] ( config ) )
22792276 }
22802277
@@ -2467,22 +2464,22 @@ private module Stage4 {
24672464
24682465 pragma [ nomagic]
24692466 private predicate callMayFlowThroughFwd ( DataFlowCall call , Configuration config ) {
2470- exists ( Ap argAp0 , Node node , Cc cc , ApOption argAp , Ap ap |
2471- fwdFlow ( node , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
2467+ exists ( Ap argAp0 , Node out , Cc cc , ApOption argAp , Ap ap |
2468+ fwdFlow ( out , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , ap ,
24722469 pragma [ only_bind_into ] ( config ) ) and
2473- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
2470+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
24742471 fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
24752472 pragma [ only_bind_into ] ( config ) )
24762473 )
24772474 }
24782475
24792476 pragma [ nomagic]
24802477 private predicate flowThroughIntoCall (
2481- DataFlowCall call , ArgNode node1 , ParamNode node2 , boolean allowsFieldFlow , Configuration config
2478+ DataFlowCall call , ArgNode arg , ParamNode p , boolean allowsFieldFlow , Configuration config
24822479 ) {
2483- flowIntoCall ( call , node1 , node2 , allowsFieldFlow , config ) and
2484- fwdFlow ( node1 , _, _, _, pragma [ only_bind_into ] ( config ) ) and
2485- PrevStage:: parameterMayFlowThrough ( node2 , _, _, pragma [ only_bind_into ] ( config ) ) and
2480+ flowIntoCall ( call , arg , p , allowsFieldFlow , config ) and
2481+ fwdFlow ( arg , _, _, _, pragma [ only_bind_into ] ( config ) ) and
2482+ PrevStage:: parameterMayFlowThrough ( p , _, _, pragma [ only_bind_into ] ( config ) ) and
24862483 callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
24872484 }
24882485
@@ -2694,9 +2691,9 @@ private module Stage4 {
26942691
26952692 pragma [ nomagic]
26962693 predicate callMayFlowThroughRev ( DataFlowCall call , Configuration config ) {
2697- exists ( Ap returnAp0 , Node node , boolean toReturn , ApOption returnAp , Ap ap |
2698- revFlow ( node , toReturn , returnAp , ap , config ) and
2699- revFlowInToReturn ( call , node , returnAp0 , ap , config ) and
2694+ exists ( Ap returnAp0 , ArgNode arg , boolean toReturn , ApOption returnAp , Ap ap |
2695+ revFlow ( arg , toReturn , returnAp , ap , config ) and
2696+ revFlowInToReturn ( call , arg , returnAp0 , ap , config ) and
27002697 revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
27012698 )
27022699 }
0 commit comments