Rename details to node

This commit is contained in:
Koen Vlaswinkel
2024-02-05 16:33:29 +01:00
parent 49dbad96f9
commit 6a098120e3

View File

@@ -11,7 +11,7 @@ private import codeql.ruby.AST
private import codeql.ruby.ApiGraphs
private import queries.modeling.internal.Util as Util
predicate simpleParameters(string type, string path, string value, DataFlow::Node details) {
predicate simpleParameters(string type, string path, string value, DataFlow::Node node) {
exists(DataFlow::MethodNode methodNode, DataFlow::ParameterNode paramNode |
methodNode.getLocation().getFile() instanceof Util::RelevantFile and
(
@@ -24,11 +24,11 @@ predicate simpleParameters(string type, string path, string value, DataFlow::Nod
|
Util::pathToMethod(methodNode, type, path) and
value = Util::getArgumentPath(paramNode) and
details = paramNode
node = paramNode
)
}
predicate blockArguments(string type, string path, string value, DataFlow::Node details) {
predicate blockArguments(string type, string path, string value, DataFlow::Node node) {
exists(DataFlow::MethodNode methodNode, DataFlow::CallNode callNode |
methodNode.getLocation().getFile() instanceof Util::RelevantFile and
callNode = methodNode.getABlockCall()
@@ -38,50 +38,50 @@ predicate blockArguments(string type, string path, string value, DataFlow::Node
argNode = callNode.getPositionalArgument(i)
|
value = "Argument[block].Parameter[" + i + "]" and
details = argNode
node = argNode
)
or
exists(DataFlow::ExprNode argNode, string keyword |
argNode = callNode.getKeywordArgument(keyword)
|
value = "Argument[block].Parameter[" + keyword + ":]" and
details = argNode
node = argNode
)
or
value = "Argument[block]" and
details = callNode
node = callNode
) and
Util::pathToMethod(methodNode, type, path)
)
}
predicate returnValue(string type, string path, string value, DataFlow::Node details) {
predicate returnValue(string type, string path, string value, DataFlow::Node node) {
exists(DataFlow::MethodNode methodNode, DataFlow::Node returnNode |
methodNode.getLocation().getFile() instanceof Util::RelevantFile and
returnNode = methodNode.getAReturnNode()
|
Util::pathToMethod(methodNode, type, path) and
value = "ReturnValue" and
details = returnNode
node = returnNode
)
}
predicate inputAccessPaths(
string type, string path, string value, DataFlow::Node details, string defType
string type, string path, string value, DataFlow::Node node, string defType
) {
simpleParameters(type, path, value, details) and defType = "parameter"
simpleParameters(type, path, value, node) and defType = "parameter"
or
blockArguments(type, path, value, details) and defType = "parameter"
blockArguments(type, path, value, node) and defType = "parameter"
}
predicate outputAccessPaths(
string type, string path, string value, DataFlow::Node details, string defType
string type, string path, string value, DataFlow::Node node, string defType
) {
simpleParameters(type, path, value, details) and defType = "parameter"
simpleParameters(type, path, value, node) and defType = "parameter"
or
blockArguments(type, path, value, details) and defType = "parameter"
blockArguments(type, path, value, node) and defType = "parameter"
or
returnValue(type, path, value, details) and defType = "return"
returnValue(type, path, value, node) and defType = "return"
}
query predicate input = inputAccessPaths/5;