Merge pull request #21051 from hvitved/shared/flow-summary-provenance-filtering

Shared: Provenance-based filtering of flow summaries
This commit is contained in:
Tom Hvitved
2026-01-26 17:24:34 +01:00
committed by GitHub
142 changed files with 15884 additions and 21193 deletions

View File

@@ -12,7 +12,7 @@ private import codeql.ruby.dataflow.FlowSummary
/**
* A convenience class for defining value (c.f. taint) flow summaries.
*/
abstract private class Summary extends SimpleSummarizedCallable {
abstract private class Summary extends SummarizedCallable::RangeSimple {
bindingset[this]
Summary() { any() }

View File

@@ -1,6 +1,6 @@
private import codeql.ruby.dataflow.FlowSummary
private class ReverseSummary extends SimpleSummarizedCallable {
private class ReverseSummary extends SummarizedCallable::RangeSimple {
ReverseSummary() { this = "reverse" }
override predicate propagatesFlow(string input, string output, boolean preservesValue) {

View File

@@ -18,7 +18,7 @@ query predicate invalidSpecComponent(SummarizedCallable sc, string s, string c)
query predicate warning = ModelOutput::getAWarning/0;
private class SummarizedCallableIdentity extends SummarizedCallable {
private class SummarizedCallableIdentity extends SummarizedCallable::Range {
SummarizedCallableIdentity() { this = "identity" }
override MethodCall getACall() { result.getMethodName() = this }
@@ -30,7 +30,7 @@ private class SummarizedCallableIdentity extends SummarizedCallable {
}
}
private class SummarizedCallableApplyBlock extends SummarizedCallable {
private class SummarizedCallableApplyBlock extends SummarizedCallable::Range {
SummarizedCallableApplyBlock() { this = "apply_block" }
override MethodCall getACall() { result.getMethodName() = this }
@@ -46,7 +46,7 @@ private class SummarizedCallableApplyBlock extends SummarizedCallable {
}
}
private class SummarizedCallableApplyLambda extends SummarizedCallable {
private class SummarizedCallableApplyLambda extends SummarizedCallable::Range {
SummarizedCallableApplyLambda() { this = "apply_lambda" }
override MethodCall getACall() { result.getMethodName() = this }