mirror of
https://github.com/github/codeql.git
synced 2026-05-05 05:35:13 +02:00
Simplify Ratpack API using standard abstract classes
This commit is contained in:
@@ -91,23 +91,11 @@ class RatpackHeader extends RefType {
|
||||
}
|
||||
}
|
||||
|
||||
private class RatpackHeaderTaintPropigatingMethod extends Method {
|
||||
private class RatpackHeaderTaintPropigatingMethod extends Method, TaintPreservingCallable {
|
||||
RatpackHeaderTaintPropigatingMethod() {
|
||||
getDeclaringType() instanceof RatpackHeader and
|
||||
hasName(["get", "getAll", "getNames", "asMultiValueMap"])
|
||||
}
|
||||
}
|
||||
|
||||
class TaintPropigatingHeaderMethod extends AdditionalTaintStep {
|
||||
override predicate step(DataFlow::Node node1, DataFlow::Node node2) {
|
||||
stepHeaderPropigatingTaint(node1, node2)
|
||||
}
|
||||
|
||||
private predicate stepHeaderPropigatingTaint(DataFlow::Node node1, DataFlow::Node node2) {
|
||||
exists(MethodAccess ma |
|
||||
ma.getMethod() instanceof RatpackHeaderTaintPropigatingMethod and
|
||||
node2.asExpr() = ma and
|
||||
node1.asExpr() = ma.getQualifier()
|
||||
)
|
||||
}
|
||||
override predicate returnsTaintFrom(int arg) { arg = -1 }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user