зеркало из https://github.com/github/codeql.git
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:
Коммит
a3fb54c9de
|
@ -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() {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче