mirror of
https://github.com/github/codeql.git
synced 2026-05-05 21:55:19 +02:00
DataFlow: Introduce 'revSinkNode'.
This commit is contained in:
@@ -4003,13 +4003,22 @@ module MakeImpl<DataFlowParameter Lang> {
|
||||
|
||||
private predicate relevantState(FlowState state) {
|
||||
sourceNode(_, state) or
|
||||
sinkNodeWithState(_, state) or
|
||||
revSinkNode(_, state) or
|
||||
additionalLocalStateStep(_, state, _, _) or
|
||||
additionalLocalStateStep(_, _, _, state) or
|
||||
additionalJumpStateStep(_, state, _, _) or
|
||||
additionalJumpStateStep(_, _, _, state)
|
||||
}
|
||||
|
||||
private predicate revSinkNode(NodeEx node, FlowState state) {
|
||||
sinkNodeWithState(node, state)
|
||||
or
|
||||
Config::isSink(node.asNode()) and
|
||||
relevantState(state) and
|
||||
not fullBarrier(node) and
|
||||
not stateBarrier(node, state)
|
||||
}
|
||||
|
||||
private newtype TSummaryCtx1 =
|
||||
TSummaryCtx1None() or
|
||||
TSummaryCtx1Param(ParamNodeEx p)
|
||||
|
||||
Reference in New Issue
Block a user