Skip to content

Commit c65780e

Browse files
committed
Data flow: Inline revFlowInNotToReturn
1 parent bdb205a commit c65780e

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1626,8 +1626,12 @@ private module MkStage<StageSig PrevStage> {
16261626
)
16271627
or
16281628
// 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+
)
16311635
or
16321636
// flow through a callable
16331637
exists(DataFlowCall call, ReturnKindExt returnKind0, Ap returnAp0 |
@@ -1683,17 +1687,6 @@ private module MkStage<StageSig PrevStage> {
16831687
)
16841688
}
16851689

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-
16971690
pragma[nomagic]
16981691
private predicate revFlowInToReturn(
16991692
DataFlowCall call, ArgNodeEx arg, FlowState state, ReturnKindExt kind, Ap returnAp, Ap ap,

0 commit comments

Comments
 (0)