Java: adjust CommandLineQuery locations

It turns out these locations need to be precise.
This commit is contained in:
Jonas Jensen
2025-01-27 13:54:22 +01:00
parent eacc600b29
commit 7ad6f13bf5

View File

@@ -59,12 +59,15 @@ module InputToArgumentToExecFlowConfig implements DataFlow::ConfigSig {
any(CommandInjectionAdditionalTaintStep s).step(n1, n2)
}
// It's valid to use diff-informed data flow for this configuration because
// the location of the selected element in the query is contained inside the
// location of the sink. The query, as a predicate, is used negated in
// another query, but that's only to prevent overlapping results between two
// queries.
// The query, as a predicate, is used negated in another query, but that's
// only to prevent overlapping results between two queries.
predicate observeDiffInformedIncrementalMode() { any() }
// All queries use the argument as the primary location and do not use the
// sink as an associated location.
Location getASelectedSinkLocation(DataFlow::Node sink) {
exists(Expr argument | argumentToExec(argument, sink) | result = argument.getLocation())
}
}
/**