mirror of
https://github.com/github/codeql.git
synced 2025-12-18 18:10:39 +01:00
Merge pull request #10007 from aschackmull/dataflow/source-node-identity
Dataflow: Fix identification of source PathNodes in the presence of source-to-source flow
This commit is contained in:
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
@@ -3061,7 +3061,7 @@ private class PathNodeMid extends PathNodeImpl, TPathNodeMid {
|
|||||||
else cc instanceof CallContextAny
|
else cc instanceof CallContextAny
|
||||||
) and
|
) and
|
||||||
sc instanceof SummaryCtxNone and
|
sc instanceof SummaryCtxNone and
|
||||||
ap instanceof AccessPathNil
|
ap = TAccessPathNil(node.getDataFlowType())
|
||||||
}
|
}
|
||||||
|
|
||||||
predicate isAtSink() {
|
predicate isAtSink() {
|
||||||
|
|||||||
Reference in New Issue
Block a user