mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Make store step to send stmt's channel use post-update node
This commit is contained in:
@@ -36,8 +36,10 @@ predicate containerStoreStep(Node node1, Node node2, Content c) {
|
||||
)
|
||||
or
|
||||
c instanceof CollectionContent and
|
||||
exists(SendStmt send |
|
||||
send.getChannel() = node2.(ExprNode).asExpr() and send.getValue() = node1.(ExprNode).asExpr()
|
||||
exists(SendStmt send, Node channelExprNode |
|
||||
send.getChannel() = channelExprNode.(ExprNode).asExpr() and
|
||||
node2.(PostUpdateNode).getPreUpdateNode() = channelExprNode and
|
||||
send.getValue() = node1.(ExprNode).asExpr()
|
||||
)
|
||||
or
|
||||
c instanceof MapKeyContent and
|
||||
|
||||
@@ -1,22 +1,14 @@
|
||||
invalidModelRow
|
||||
edges
|
||||
| test.go:9:9:9:11 | selection of c [collection] | test.go:9:7:9:11 | <-... | provenance | |
|
||||
| test.go:13:16:13:16 | definition of s [pointer, c, collection] | test.go:16:2:16:2 | s [pointer, c, collection] | provenance | |
|
||||
| test.go:15:10:15:17 | call to source | test.go:16:9:16:12 | data | provenance | |
|
||||
| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:13:16:13:16 | definition of s [pointer, c, collection] | provenance | |
|
||||
| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:16:2:16:4 | selection of c [collection] | provenance | |
|
||||
| test.go:16:2:16:2 | s [pointer, c, collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | provenance | |
|
||||
| test.go:16:2:16:4 | selection of c [collection] | test.go:9:9:9:11 | selection of c [collection] | provenance | |
|
||||
| test.go:16:2:16:4 | selection of c [collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | provenance | |
|
||||
| test.go:16:9:16:12 | data | test.go:16:2:16:4 | selection of c [collection] | provenance | |
|
||||
| test.go:16:2:16:4 | selection of c [postupdate] [collection] | test.go:9:9:9:11 | selection of c [collection] | provenance | |
|
||||
| test.go:16:9:16:12 | data | test.go:16:2:16:4 | selection of c [postupdate] [collection] | provenance | |
|
||||
nodes
|
||||
| test.go:9:7:9:11 | <-... | semmle.label | <-... |
|
||||
| test.go:9:9:9:11 | selection of c [collection] | semmle.label | selection of c [collection] |
|
||||
| test.go:13:16:13:16 | definition of s [pointer, c, collection] | semmle.label | definition of s [pointer, c, collection] |
|
||||
| test.go:15:10:15:17 | call to source | semmle.label | call to source |
|
||||
| test.go:16:2:16:2 | implicit dereference [c, collection] | semmle.label | implicit dereference [c, collection] |
|
||||
| test.go:16:2:16:2 | s [pointer, c, collection] | semmle.label | s [pointer, c, collection] |
|
||||
| test.go:16:2:16:4 | selection of c [collection] | semmle.label | selection of c [collection] |
|
||||
| test.go:16:2:16:4 | selection of c [postupdate] [collection] | semmle.label | selection of c [postupdate] [collection] |
|
||||
| test.go:16:9:16:12 | data | semmle.label | data |
|
||||
subpaths
|
||||
#select
|
||||
|
||||
Reference in New Issue
Block a user