@@ -1626,8 +1626,12 @@ private module MkStage<StageSig PrevStage> {
1626
1626
)
1627
1627
or
1628
1628
// flow into a callable
1629
- revFlowInNotToReturn(node, state, returnAp, ap, config) and
1630
- returnCtx = TReturnCtxNone()
1629
+ exists(ParamNodeEx p, boolean allowsFieldFlow |
1630
+ revFlow(p, state, TReturnCtxNone(), returnAp, ap, config) and
1631
+ flowIntoCall(_, node, p, allowsFieldFlow, config) and
1632
+ (if allowsFieldFlow = false then ap instanceof ApNil else any()) and
1633
+ returnCtx = TReturnCtxNone()
1634
+ )
1631
1635
or
1632
1636
// flow through a callable
1633
1637
exists(DataFlowCall call, ReturnKindExt returnKind0, Ap returnAp0 |
@@ -1683,17 +1687,6 @@ private module MkStage<StageSig PrevStage> {
1683
1687
)
1684
1688
}
1685
1689
1686
- pragma[nomagic]
1687
- private predicate revFlowInNotToReturn(
1688
- ArgNodeEx arg, FlowState state, ApOption returnAp, Ap ap, Configuration config
1689
- ) {
1690
- exists(ParamNodeEx p, boolean allowsFieldFlow |
1691
- revFlow(p, state, TReturnCtxNone(), returnAp, ap, config) and
1692
- flowIntoCall(_, arg, p, allowsFieldFlow, config) and
1693
- if allowsFieldFlow = false then ap instanceof ApNil else any()
1694
- )
1695
- }
1696
-
1697
1690
pragma[nomagic]
1698
1691
private predicate revFlowInToReturn(
1699
1692
DataFlowCall call, ArgNodeEx arg, FlowState state, ReturnKindExt kind, Ap returnAp, Ap ap,
0 commit comments