@@ -607,9 +607,9 @@ private module Stage1 {
607
607
608
608
pragma [ nomagic]
609
609
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
613
613
revFlowIsReturned ( call , toReturn , config )
614
614
)
615
615
}
@@ -838,12 +838,11 @@ private module Stage2 {
838
838
839
839
pragma [ nomagic]
840
840
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
843
842
) {
844
- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
843
+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
845
844
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
846
- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
845
+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
847
846
pragma [ only_bind_into ] ( config ) )
848
847
}
849
848
@@ -1029,22 +1028,22 @@ private module Stage2 {
1029
1028
1030
1029
pragma [ nomagic]
1031
1030
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 ,
1034
1033
pragma [ only_bind_into ] ( config ) ) and
1035
- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
1034
+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
1036
1035
fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
1037
1036
pragma [ only_bind_into ] ( config ) )
1038
1037
)
1039
1038
}
1040
1039
1041
1040
pragma [ nomagic]
1042
1041
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
1044
1043
) {
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
1048
1047
callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
1049
1048
}
1050
1049
@@ -1256,9 +1255,9 @@ private module Stage2 {
1256
1255
1257
1256
pragma [ nomagic]
1258
1257
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
1262
1261
revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
1263
1262
)
1264
1263
}
@@ -1513,12 +1512,11 @@ private module Stage3 {
1513
1512
1514
1513
pragma [ nomagic]
1515
1514
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
1518
1516
) {
1519
- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
1517
+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
1520
1518
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
1521
- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
1519
+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
1522
1520
pragma [ only_bind_into ] ( config ) )
1523
1521
}
1524
1522
@@ -1711,22 +1709,22 @@ private module Stage3 {
1711
1709
1712
1710
pragma [ nomagic]
1713
1711
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 ,
1716
1714
pragma [ only_bind_into ] ( config ) ) and
1717
- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
1715
+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
1718
1716
fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
1719
1717
pragma [ only_bind_into ] ( config ) )
1720
1718
)
1721
1719
}
1722
1720
1723
1721
pragma [ nomagic]
1724
1722
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
1726
1724
) {
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
1730
1728
callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
1731
1729
}
1732
1730
@@ -1938,9 +1936,9 @@ private module Stage3 {
1938
1936
1939
1937
pragma [ nomagic]
1940
1938
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
1944
1942
revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
1945
1943
)
1946
1944
}
@@ -2269,12 +2267,11 @@ private module Stage4 {
2269
2267
2270
2268
pragma [ nomagic]
2271
2269
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
2274
2271
) {
2275
- flowOutOfCall ( call , node1 , node2 , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
2272
+ flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
2276
2273
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
2277
- PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( node1 ) , _,
2274
+ PrevStage:: parameterMayFlowThrough ( _, getNodeEnclosingCallable ( ret ) , _,
2278
2275
pragma [ only_bind_into ] ( config ) )
2279
2276
}
2280
2277
@@ -2467,22 +2464,22 @@ private module Stage4 {
2467
2464
2468
2465
pragma [ nomagic]
2469
2466
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 ,
2472
2469
pragma [ only_bind_into ] ( config ) ) and
2473
- fwdFlowOutFromArg ( call , node , argAp0 , ap , config ) and
2470
+ fwdFlowOutFromArg ( call , out , argAp0 , ap , config ) and
2474
2471
fwdFlowIsEntered ( call , pragma [ only_bind_into ] ( cc ) , pragma [ only_bind_into ] ( argAp ) , argAp0 ,
2475
2472
pragma [ only_bind_into ] ( config ) )
2476
2473
)
2477
2474
}
2478
2475
2479
2476
pragma [ nomagic]
2480
2477
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
2482
2479
) {
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
2486
2483
callMayFlowThroughFwd ( call , pragma [ only_bind_into ] ( config ) )
2487
2484
}
2488
2485
@@ -2694,9 +2691,9 @@ private module Stage4 {
2694
2691
2695
2692
pragma [ nomagic]
2696
2693
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
2700
2697
revFlowIsReturned ( call , toReturn , returnAp , returnAp0 , config )
2701
2698
)
2702
2699
}
0 commit comments