Skip to content

Commit 4346a7f

Browse files
committed
Data flow: Inline fwdFlowOutNotFromArg
1 parent 70d2a0d commit 4346a7f

File tree

1 file changed

+10
-18
lines changed

1 file changed

+10
-18
lines changed

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

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1390,7 +1390,16 @@ private module MkStage<StageSig PrevStage> {
13901390
)
13911391
or
13921392
// 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+
)
13941403
or
13951404
// flow through a callable
13961405
exists(DataFlowCall call, ParameterPosition summaryCtx0, Ap argAp0 |
@@ -1447,23 +1456,6 @@ private module MkStage<StageSig PrevStage> {
14471456
)
14481457
}
14491458

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-
14671459
pragma[nomagic]
14681460
private predicate fwdFlowOutFromArg(
14691461
DataFlowCall call, NodeEx out, FlowState state, ParameterPosition summaryCtx, Ap argAp, Ap ap,

0 commit comments

Comments
 (0)