mirror of
https://github.com/github/codeql.git
synced 2025-12-20 10:46:30 +01:00
Data flow: Sync files
This commit is contained in:
@@ -789,11 +789,11 @@ private module Cached {
|
|||||||
cached
|
cached
|
||||||
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
||||||
|
|
||||||
private predicate store(
|
cached
|
||||||
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
predicate storeSet(
|
||||||
|
Node node1, ContentSet c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
) {
|
) {
|
||||||
exists(ContentSet cs | c = cs.getAStoreContent() |
|
storeStep(node1, c, node2) and
|
||||||
storeStep(node1, cs, node2) and
|
|
||||||
contentType = getNodeDataFlowType(node1) and
|
contentType = getNodeDataFlowType(node1) and
|
||||||
containerType = getNodeDataFlowType(node2)
|
containerType = getNodeDataFlowType(node2)
|
||||||
or
|
or
|
||||||
@@ -801,12 +801,19 @@ private module Cached {
|
|||||||
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
||||||
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
||||||
|
|
|
|
||||||
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, cs, contentType), n1)
|
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, c, contentType), n1)
|
||||||
or
|
or
|
||||||
readSet(n2, cs, n1) and
|
readSet(n2, c, n1) and
|
||||||
contentType = getNodeDataFlowType(n1) and
|
contentType = getNodeDataFlowType(n1) and
|
||||||
containerType = getNodeDataFlowType(n2)
|
containerType = getNodeDataFlowType(n2)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private predicate store(
|
||||||
|
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
|
) {
|
||||||
|
exists(ContentSet cs |
|
||||||
|
c = cs.getAStoreContent() and storeSet(node1, cs, node2, contentType, containerType)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -789,11 +789,11 @@ private module Cached {
|
|||||||
cached
|
cached
|
||||||
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
||||||
|
|
||||||
private predicate store(
|
cached
|
||||||
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
predicate storeSet(
|
||||||
|
Node node1, ContentSet c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
) {
|
) {
|
||||||
exists(ContentSet cs | c = cs.getAStoreContent() |
|
storeStep(node1, c, node2) and
|
||||||
storeStep(node1, cs, node2) and
|
|
||||||
contentType = getNodeDataFlowType(node1) and
|
contentType = getNodeDataFlowType(node1) and
|
||||||
containerType = getNodeDataFlowType(node2)
|
containerType = getNodeDataFlowType(node2)
|
||||||
or
|
or
|
||||||
@@ -801,12 +801,19 @@ private module Cached {
|
|||||||
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
||||||
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
||||||
|
|
|
|
||||||
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, cs, contentType), n1)
|
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, c, contentType), n1)
|
||||||
or
|
or
|
||||||
readSet(n2, cs, n1) and
|
readSet(n2, c, n1) and
|
||||||
contentType = getNodeDataFlowType(n1) and
|
contentType = getNodeDataFlowType(n1) and
|
||||||
containerType = getNodeDataFlowType(n2)
|
containerType = getNodeDataFlowType(n2)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private predicate store(
|
||||||
|
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
|
) {
|
||||||
|
exists(ContentSet cs |
|
||||||
|
c = cs.getAStoreContent() and storeSet(node1, cs, node2, contentType, containerType)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -789,11 +789,11 @@ private module Cached {
|
|||||||
cached
|
cached
|
||||||
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
||||||
|
|
||||||
private predicate store(
|
cached
|
||||||
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
predicate storeSet(
|
||||||
|
Node node1, ContentSet c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
) {
|
) {
|
||||||
exists(ContentSet cs | c = cs.getAStoreContent() |
|
storeStep(node1, c, node2) and
|
||||||
storeStep(node1, cs, node2) and
|
|
||||||
contentType = getNodeDataFlowType(node1) and
|
contentType = getNodeDataFlowType(node1) and
|
||||||
containerType = getNodeDataFlowType(node2)
|
containerType = getNodeDataFlowType(node2)
|
||||||
or
|
or
|
||||||
@@ -801,12 +801,19 @@ private module Cached {
|
|||||||
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
||||||
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
||||||
|
|
|
|
||||||
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, cs, contentType), n1)
|
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, c, contentType), n1)
|
||||||
or
|
or
|
||||||
readSet(n2, cs, n1) and
|
readSet(n2, c, n1) and
|
||||||
contentType = getNodeDataFlowType(n1) and
|
contentType = getNodeDataFlowType(n1) and
|
||||||
containerType = getNodeDataFlowType(n2)
|
containerType = getNodeDataFlowType(n2)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private predicate store(
|
||||||
|
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
|
) {
|
||||||
|
exists(ContentSet cs |
|
||||||
|
c = cs.getAStoreContent() and storeSet(node1, cs, node2, contentType, containerType)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -789,11 +789,11 @@ private module Cached {
|
|||||||
cached
|
cached
|
||||||
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
||||||
|
|
||||||
private predicate store(
|
cached
|
||||||
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
predicate storeSet(
|
||||||
|
Node node1, ContentSet c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
) {
|
) {
|
||||||
exists(ContentSet cs | c = cs.getAStoreContent() |
|
storeStep(node1, c, node2) and
|
||||||
storeStep(node1, cs, node2) and
|
|
||||||
contentType = getNodeDataFlowType(node1) and
|
contentType = getNodeDataFlowType(node1) and
|
||||||
containerType = getNodeDataFlowType(node2)
|
containerType = getNodeDataFlowType(node2)
|
||||||
or
|
or
|
||||||
@@ -801,12 +801,19 @@ private module Cached {
|
|||||||
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
||||||
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
||||||
|
|
|
|
||||||
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, cs, contentType), n1)
|
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, c, contentType), n1)
|
||||||
or
|
or
|
||||||
readSet(n2, cs, n1) and
|
readSet(n2, c, n1) and
|
||||||
contentType = getNodeDataFlowType(n1) and
|
contentType = getNodeDataFlowType(n1) and
|
||||||
containerType = getNodeDataFlowType(n2)
|
containerType = getNodeDataFlowType(n2)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private predicate store(
|
||||||
|
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
|
) {
|
||||||
|
exists(ContentSet cs |
|
||||||
|
c = cs.getAStoreContent() and storeSet(node1, cs, node2, contentType, containerType)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -789,11 +789,11 @@ private module Cached {
|
|||||||
cached
|
cached
|
||||||
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
predicate readSet(Node node1, ContentSet c, Node node2) { readStep(node1, c, node2) }
|
||||||
|
|
||||||
private predicate store(
|
cached
|
||||||
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
predicate storeSet(
|
||||||
|
Node node1, ContentSet c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
) {
|
) {
|
||||||
exists(ContentSet cs | c = cs.getAStoreContent() |
|
storeStep(node1, c, node2) and
|
||||||
storeStep(node1, cs, node2) and
|
|
||||||
contentType = getNodeDataFlowType(node1) and
|
contentType = getNodeDataFlowType(node1) and
|
||||||
containerType = getNodeDataFlowType(node2)
|
containerType = getNodeDataFlowType(node2)
|
||||||
or
|
or
|
||||||
@@ -801,12 +801,19 @@ private module Cached {
|
|||||||
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
n1 = node1.(PostUpdateNode).getPreUpdateNode() and
|
||||||
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
n2 = node2.(PostUpdateNode).getPreUpdateNode()
|
||||||
|
|
|
|
||||||
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, cs, contentType), n1)
|
argumentValueFlowsThrough(n2, TReadStepTypesSome(containerType, c, contentType), n1)
|
||||||
or
|
or
|
||||||
readSet(n2, cs, n1) and
|
readSet(n2, c, n1) and
|
||||||
contentType = getNodeDataFlowType(n1) and
|
contentType = getNodeDataFlowType(n1) and
|
||||||
containerType = getNodeDataFlowType(n2)
|
containerType = getNodeDataFlowType(n2)
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private predicate store(
|
||||||
|
Node node1, Content c, Node node2, DataFlowType contentType, DataFlowType containerType
|
||||||
|
) {
|
||||||
|
exists(ContentSet cs |
|
||||||
|
c = cs.getAStoreContent() and storeSet(node1, cs, node2, contentType, containerType)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user