@@ -1019,12 +1019,14 @@ private module Stage2 {
1019
1019
1020
1020
pragma [ nomagic]
1021
1021
private predicate flowThroughOutOfCall (
1022
- DataFlowCall call , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow , Configuration config
1022
+ DataFlowCall call , CcCall ccc , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow ,
1023
+ Configuration config
1023
1024
) {
1024
1025
flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
1025
1026
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
1026
1027
PrevStage:: parameterMayFlowThrough ( _, ret .getEnclosingCallable ( ) , _,
1027
- pragma [ only_bind_into ] ( config ) )
1028
+ pragma [ only_bind_into ] ( config ) ) and
1029
+ ccc .matchesCall ( call )
1028
1030
}
1029
1031
1030
1032
/**
@@ -1171,8 +1173,7 @@ private module Stage2 {
1171
1173
) {
1172
1174
exists ( RetNodeEx ret , boolean allowsFieldFlow , CcCall ccc |
1173
1175
fwdFlow ( ret , ccc , apSome ( argAp ) , ap , config ) and
1174
- flowThroughOutOfCall ( call , ret , out , allowsFieldFlow , config ) and
1175
- ccc .matchesCall ( call )
1176
+ flowThroughOutOfCall ( call , ccc , ret , out , allowsFieldFlow , config )
1176
1177
|
1177
1178
ap instanceof ApNil or allowsFieldFlow = true
1178
1179
)
@@ -1712,12 +1713,14 @@ private module Stage3 {
1712
1713
1713
1714
pragma [ nomagic]
1714
1715
private predicate flowThroughOutOfCall (
1715
- DataFlowCall call , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow , Configuration config
1716
+ DataFlowCall call , CcCall ccc , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow ,
1717
+ Configuration config
1716
1718
) {
1717
1719
flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
1718
1720
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
1719
1721
PrevStage:: parameterMayFlowThrough ( _, ret .getEnclosingCallable ( ) , _,
1720
- pragma [ only_bind_into ] ( config ) )
1722
+ pragma [ only_bind_into ] ( config ) ) and
1723
+ ccc .matchesCall ( call )
1721
1724
}
1722
1725
1723
1726
/**
@@ -1871,8 +1874,7 @@ private module Stage3 {
1871
1874
) {
1872
1875
exists ( RetNodeEx ret , boolean allowsFieldFlow , CcCall ccc |
1873
1876
fwdFlow ( ret , ccc , apSome ( argAp ) , ap , config ) and
1874
- flowThroughOutOfCall ( call , ret , out , allowsFieldFlow , config ) and
1875
- ccc .matchesCall ( call )
1877
+ flowThroughOutOfCall ( call , ccc , ret , out , allowsFieldFlow , config )
1876
1878
|
1877
1879
ap instanceof ApNil or allowsFieldFlow = true
1878
1880
)
@@ -2483,12 +2485,14 @@ private module Stage4 {
2483
2485
2484
2486
pragma [ nomagic]
2485
2487
private predicate flowThroughOutOfCall (
2486
- DataFlowCall call , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow , Configuration config
2488
+ DataFlowCall call , CcCall ccc , RetNodeEx ret , NodeEx out , boolean allowsFieldFlow ,
2489
+ Configuration config
2487
2490
) {
2488
2491
flowOutOfCall ( call , ret , out , allowsFieldFlow , pragma [ only_bind_into ] ( config ) ) and
2489
2492
PrevStage:: callMayFlowThroughRev ( call , pragma [ only_bind_into ] ( config ) ) and
2490
2493
PrevStage:: parameterMayFlowThrough ( _, ret .getEnclosingCallable ( ) , _,
2491
- pragma [ only_bind_into ] ( config ) )
2494
+ pragma [ only_bind_into ] ( config ) ) and
2495
+ ccc .matchesCall ( call )
2492
2496
}
2493
2497
2494
2498
/**
@@ -2642,8 +2646,7 @@ private module Stage4 {
2642
2646
) {
2643
2647
exists ( RetNodeEx ret , boolean allowsFieldFlow , CcCall ccc |
2644
2648
fwdFlow ( ret , ccc , apSome ( argAp ) , ap , config ) and
2645
- flowThroughOutOfCall ( call , ret , out , allowsFieldFlow , config ) and
2646
- ccc .matchesCall ( call )
2649
+ flowThroughOutOfCall ( call , ccc , ret , out , allowsFieldFlow , config )
2647
2650
|
2648
2651
ap instanceof ApNil or allowsFieldFlow = true
2649
2652
)
0 commit comments