mirror of
https://github.com/github/codeql.git
synced 2026-04-25 16:55:19 +02:00
JS: Rename propagatesFlowExt -> propagatesFlow
This commit is contained in:
@@ -11,19 +11,18 @@ abstract class SummarizedCallable extends LibraryCallable, Impl::Public::Summari
|
||||
bindingset[this]
|
||||
SummarizedCallable() { any() }
|
||||
|
||||
// TODO: rename 'propagatesFlowExt' and/or override 'propagatesFlow' directly
|
||||
/**
|
||||
* Holds if data may flow from `input` to `output` through this callable.
|
||||
*
|
||||
* `preservesValue` indicates whether this is a value-preserving step or a taint-step.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
predicate propagatesFlowExt(string input, string output, boolean preservesValue) { none() }
|
||||
predicate propagatesFlow(string input, string output, boolean preservesValue) { none() }
|
||||
|
||||
override predicate propagatesFlow(
|
||||
string input, string output, boolean preservesValue, string model
|
||||
) {
|
||||
this.propagatesFlowExt(input, output, preservesValue) and model = this
|
||||
this.propagatesFlow(input, output, preservesValue) and model = this
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,7 +31,7 @@ class At extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "at" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].ArrayElement" and
|
||||
output = "ReturnValue"
|
||||
@@ -45,7 +45,7 @@ class Concat extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "concat" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this,0..].ArrayElement" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -61,7 +61,7 @@ class Slice extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "slice" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].ArrayElement" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -80,7 +80,7 @@ class Entries extends SummarizedCallable {
|
||||
result.getNumArgument() = 0
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this]." + ["MapKey", "SetElement"] and
|
||||
@@ -97,7 +97,7 @@ class ForEach extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "forEach" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
/*
|
||||
* array.forEach(callbackfn, thisArg)
|
||||
@@ -128,7 +128,7 @@ class Keys extends SummarizedCallable {
|
||||
result.getNumArgument() = 0
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this]." + ["MapKey", "SetElement"] and
|
||||
output = "ReturnValue.IteratorElement"
|
||||
@@ -143,7 +143,7 @@ class Values extends SummarizedCallable {
|
||||
result.getNumArgument() = 0
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this]." + ["ArrayElement", "SetElement", "MapValue"] and
|
||||
output = "ReturnValue.IteratorElement"
|
||||
|
||||
@@ -99,7 +99,7 @@ class ArrayConstructorSummary extends SummarizedCallable {
|
||||
result = arrayConstructorRef().getAnInvocation()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..]" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -123,7 +123,7 @@ class Join extends SummarizedCallable {
|
||||
result.getNumArgument() = [0, 1]
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
input = "Argument[this].ArrayElement" and
|
||||
output = "ReturnValue"
|
||||
@@ -135,7 +135,7 @@ class CopyWithin extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "copyWithin" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].WithArrayElement" and
|
||||
output = "ReturnValue"
|
||||
@@ -154,7 +154,7 @@ class FlowIntoCallback extends SummarizedCallable {
|
||||
result.getMethodName() = ["every", "findIndex", "findLastIndex", "some"]
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -171,7 +171,7 @@ class Filter extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "filter" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -198,7 +198,7 @@ class Fill extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "fill" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..]" and
|
||||
output = ["ReturnValue.ArrayElement", "Argument[this].ArrayElement"]
|
||||
@@ -210,7 +210,7 @@ class FindLike extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = ["find", "findLast"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -229,7 +229,7 @@ class FindLibrary extends SummarizedCallable {
|
||||
result = DataFlow::moduleImport(["array.prototype.find", "array-find"]).getACall()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].ArrayElement" and
|
||||
@@ -257,7 +257,7 @@ class Flat extends SummarizedCallable {
|
||||
)
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this]" + concat(int n | n in [0 .. depth] | ".ArrayElement")
|
||||
@@ -277,7 +277,7 @@ class FlatMap extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "flatMap" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -309,7 +309,7 @@ class From1Arg extends SummarizedCallable {
|
||||
result = arrayFromCall() and result.getNumArgument() = 1
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].WithArrayElement" and
|
||||
@@ -346,7 +346,7 @@ class FromManyArg extends SummarizedCallable {
|
||||
result.getNumArgument() > 1
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0]." + ["ArrayElement", "SetElement", "IteratorElement"] and
|
||||
@@ -380,7 +380,7 @@ class Map extends SummarizedCallable {
|
||||
result.getMethodName() = "map"
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -405,7 +405,7 @@ class Of extends SummarizedCallable {
|
||||
result = arrayConstructorRef().getAMemberCall("of")
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..]" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -417,7 +417,7 @@ class Pop extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "pop" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].ArrayElement" and
|
||||
output = "ReturnValue"
|
||||
@@ -429,7 +429,7 @@ class PushLike extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = ["push", "unshift"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..]" and
|
||||
output = "Argument[this].ArrayElement"
|
||||
@@ -441,7 +441,7 @@ class ReduceLike extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = ["reduce", "reduceRight"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
/*
|
||||
* Signatures:
|
||||
@@ -470,7 +470,7 @@ class Reverse extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = ["reverse", "toReversed"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].ArrayElement" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -482,7 +482,7 @@ class Shift extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "shift" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].ArrayElement[0]" and
|
||||
output = "ReturnValue"
|
||||
@@ -500,7 +500,7 @@ class Sort extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = ["sort", "toSorted"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -517,7 +517,7 @@ class Splice extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "splice" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -534,7 +534,7 @@ class ToSpliced extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "toSpliced" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].ArrayElement" and
|
||||
@@ -551,7 +551,7 @@ class ArrayCoercionPackage extends FunctionalPackageSummary {
|
||||
|
||||
override string getAPackageName() { result = ["arrify", "array-ify"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].WithArrayElement" and
|
||||
@@ -573,7 +573,7 @@ class ArrayCopyingPackage extends FunctionalPackageSummary {
|
||||
|
||||
override string getAPackageName() { result = ["array-union", "array-uniq", "uniq"] }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..].ArrayElement" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -587,7 +587,7 @@ class ArrayFlatteningPackage extends FunctionalPackageSummary {
|
||||
result = ["array-flatten", "arr-flatten", "flatten", "array.prototype.flat"]
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
// TODO: properly support these. For the moment we're just adding parity with the old model
|
||||
preservesValue = false and
|
||||
input = "Argument[0..]" and
|
||||
|
||||
@@ -40,7 +40,7 @@ private class ExceptionFlowSummary extends SummarizedCallable, LibraryCallableIn
|
||||
isCallback(result.getAnArgument().getALocalSource())
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0..].ReturnValue[exception]" and
|
||||
output = "ReturnValue[exception]"
|
||||
|
||||
@@ -16,7 +16,7 @@ class IteratorNext extends SummarizedCallable {
|
||||
result.getNumArgument() = 0
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[this].IteratorElement" and
|
||||
|
||||
@@ -12,7 +12,7 @@ private class JsonStringifySummary extends SummarizedCallable {
|
||||
|
||||
override DataFlow::InvokeNode getACall() { result instanceof JsonStringifyCall }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
input = ["Argument[0]", "Argument[0].AnyMemberDeep"] and
|
||||
output = "ReturnValue"
|
||||
|
||||
@@ -15,7 +15,7 @@ class MapConstructor extends SummarizedCallable {
|
||||
result = mapConstructorRef().getAnInstantiation()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0]." + ["ArrayElement", "SetElement", "IteratorElement"] + ".Member[0]" and
|
||||
@@ -87,7 +87,7 @@ class MapGet extends SummarizedCallable {
|
||||
result.getNumArgument() = 1
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[this].MapValue" and
|
||||
output = "ReturnValue"
|
||||
@@ -102,7 +102,7 @@ class MapSet extends SummarizedCallable {
|
||||
result.getNumArgument() = 2
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = ["Argument[this].WithMapKey", "Argument[this].WithMapValue"] and
|
||||
output = "ReturnValue"
|
||||
|
||||
@@ -29,7 +29,7 @@ private class PromiseConstructor extends SummarizedCallable {
|
||||
none()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
// TODO: when FlowSummaryImpl.qll supports these summaries, remove the workaround in PromiseConstructorWorkaround
|
||||
@@ -58,7 +58,7 @@ module PromiseConstructorWorkaround {
|
||||
promiseConstructorRef().getAnInstantiation().getCallback(0).getParameter(0).getACall()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0]" and
|
||||
output = "Argument[function].Member[resolve-value]"
|
||||
@@ -73,7 +73,7 @@ module PromiseConstructorWorkaround {
|
||||
promiseConstructorRef().getAnInstantiation().getCallback(0).getParameter(1).getACall()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0]" and
|
||||
output = "Argument[function].Member[reject-value]"
|
||||
@@ -87,7 +87,7 @@ module PromiseConstructorWorkaround {
|
||||
result = promiseConstructorRef().getAnInstantiation()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].Parameter[0].Member[resolve-value]" and
|
||||
@@ -111,7 +111,7 @@ private class PromiseThen2Arguments extends SummarizedCallable {
|
||||
result.getNumArgument() = 2
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0,1].ReturnValue" and output = "ReturnValue.Awaited"
|
||||
@@ -133,7 +133,7 @@ private class PromiseThen1Argument extends SummarizedCallable {
|
||||
result.getNumArgument() = 1
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].ReturnValue" and output = "ReturnValue.Awaited"
|
||||
@@ -152,7 +152,7 @@ private class PromiseCatch extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "catch" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].ReturnValue" and output = "ReturnValue.Awaited"
|
||||
@@ -171,7 +171,7 @@ private class PromiseFinally extends SummarizedCallable {
|
||||
|
||||
override InstanceCall getACallSimple() { result.getMethodName() = "finally" }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].ReturnValue.Awaited[error]" and output = "ReturnValue.Awaited[error]"
|
||||
@@ -190,7 +190,7 @@ private class PromiseResolve extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall("resolve")
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0]" and
|
||||
output = "ReturnValue.Awaited"
|
||||
@@ -204,7 +204,7 @@ private class PromiseReject extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall("reject")
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0]" and
|
||||
output = "ReturnValue.Awaited[error]"
|
||||
@@ -218,7 +218,7 @@ private class PromiseAll extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall("all")
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
exists(string content | content = getAnArrayContent() |
|
||||
input = "Argument[0]." + content + ".Awaited" and
|
||||
@@ -242,7 +242,7 @@ private class PromiseAnyLike extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall(["any", "race", "firstFulfilled"])
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0].ArrayElement" and
|
||||
output = "ReturnValue.Awaited"
|
||||
@@ -258,7 +258,7 @@ private class PromiseAllSettled extends SummarizedCallable {
|
||||
result = DataFlow::moduleImport("promise.allsettled").getACall()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
exists(string content | content = getAnArrayContent() |
|
||||
input = "Argument[0]." + content + ".Awaited" and
|
||||
@@ -277,7 +277,7 @@ private class BluebirdMapSeries extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall("mapSeries")
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0].Awaited.ArrayElement.Awaited" and
|
||||
@@ -310,7 +310,7 @@ private class PromiseWithResolversLike extends SummarizedCallable {
|
||||
result = promiseConstructorRef().getAMemberCall(["withResolver", "withResolvers", "defer"])
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
// TODO: not currently supported by FlowSummaryImpl.qll
|
||||
|
||||
@@ -15,7 +15,7 @@ class SetConstructor extends SummarizedCallable {
|
||||
result = setConstructorRef().getAnInstantiation()
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
(
|
||||
input = "Argument[0]." + ["ArrayElement", "SetElement", "IteratorElement"] and
|
||||
@@ -38,7 +38,7 @@ class SetAdd extends SummarizedCallable {
|
||||
result.getNumArgument() = 1
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = true and
|
||||
input = "Argument[0]" and
|
||||
output = "Argument[this].SetElement"
|
||||
|
||||
@@ -15,7 +15,7 @@ private class StringReplaceNoWildcard extends SummarizedCallable {
|
||||
|
||||
override StringReplaceCall getACall() { not result.hasRegExpContainingWildcard() }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
(
|
||||
input = "Argument[this]" and
|
||||
@@ -39,7 +39,7 @@ private class StringReplaceWithWildcard extends SummarizedCallable {
|
||||
|
||||
override StringReplaceCall getACall() { result.hasRegExpContainingWildcard() }
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
(
|
||||
input = "Argument[this]" and
|
||||
@@ -60,7 +60,7 @@ class StringSplit extends SummarizedCallable {
|
||||
not result.getArgument(0).getStringValue() = ["#", "?"]
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
input = "Argument[this]" and
|
||||
output = "ReturnValue.ArrayElement"
|
||||
@@ -85,7 +85,7 @@ class StringSplitHashOrQuestionMark extends SummarizedCallable {
|
||||
result.getArgument(0).getStringValue() = ["#", "?"]
|
||||
}
|
||||
|
||||
override predicate propagatesFlowExt(string input, string output, boolean preservesValue) {
|
||||
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
|
||||
preservesValue = false and
|
||||
(
|
||||
input = "Argument[this].OptionalBarrier[split-url-suffix]" and
|
||||
|
||||
Reference in New Issue
Block a user