@@ -1390,7 +1390,16 @@ private module MkStage<StageSig PrevStage> {
1390
1390
)
1391
1391
or
1392
1392
// flow out of a callable
1393
- fwdFlowOutNotFromArg ( node , state , cc , summaryCtx , argAp , ap , config )
1393
+ exists (
1394
+ DataFlowCall call , RetNodeEx ret , boolean allowsFieldFlow , CcNoCall innercc ,
1395
+ DataFlowCallable inner
1396
+ |
1397
+ fwdFlow ( ret , state , innercc , summaryCtx , argAp , ap , config ) and
1398
+ flowOutOfCall ( call , ret , _, node , allowsFieldFlow , config ) and
1399
+ inner = ret .getEnclosingCallable ( ) and
1400
+ cc = getCallContextReturn ( inner , call , innercc ) and
1401
+ if allowsFieldFlow = false then ap instanceof ApNil else any ( )
1402
+ )
1394
1403
or
1395
1404
// flow through a callable
1396
1405
exists ( DataFlowCall call , ParameterPosition summaryCtx0 , Ap argAp0 |
@@ -1447,23 +1456,6 @@ private module MkStage<StageSig PrevStage> {
1447
1456
)
1448
1457
}
1449
1458
1450
- pragma [ nomagic]
1451
- private predicate fwdFlowOutNotFromArg (
1452
- NodeEx out , FlowState state , Cc ccOut , ParameterPositionOption summaryCtx , ApOption argAp ,
1453
- Ap ap , Configuration config
1454
- ) {
1455
- exists (
1456
- DataFlowCall call , RetNodeEx ret , boolean allowsFieldFlow , CcNoCall innercc ,
1457
- DataFlowCallable inner
1458
- |
1459
- fwdFlow ( ret , state , innercc , summaryCtx , argAp , ap , config ) and
1460
- flowOutOfCall ( call , ret , _, out , allowsFieldFlow , config ) and
1461
- inner = ret .getEnclosingCallable ( ) and
1462
- ccOut = getCallContextReturn ( inner , call , innercc ) and
1463
- if allowsFieldFlow = false then ap instanceof ApNil else any ( )
1464
- )
1465
- }
1466
-
1467
1459
pragma [ nomagic]
1468
1460
private predicate fwdFlowOutFromArg (
1469
1461
DataFlowCall call , NodeEx out , FlowState state , ParameterPosition summaryCtx , Ap argAp , Ap ap ,
0 commit comments