mirror of
https://github.com/github/codeql.git
synced 2026-04-29 18:55:14 +02:00
Merge remote-tracking branch 'origin/main' into nickrolfe/user-controlled-bypass
This commit is contained in:
@@ -10,7 +10,14 @@
|
||||
"javascript/ql/experimental/adaptivethreatmodeling/src/qlpack.yml",
|
||||
"misc/legacy-support/*/qlpack.yml",
|
||||
"misc/suite-helpers/qlpack.yml",
|
||||
"ruby/ql/consistency-queries/qlpack.yml",
|
||||
"ruby/extractor-pack/codeql-extractor.yml"
|
||||
]
|
||||
}
|
||||
"ruby/extractor-pack/codeql-extractor.yml",
|
||||
"ruby/ql/consistency-queries/qlpack.yml"
|
||||
],
|
||||
"versionPolicies": {
|
||||
"default": {
|
||||
"requireChangeNotes": true,
|
||||
"committedPrereleaseSuffix": "dev",
|
||||
"committedVersion": "nextPatchRelease"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.9.0" />
|
||||
<PackageReference Include="Microsoft.Build" Version="16.11.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
7
cpp/ql/lib/CHANGELOG.md
Normal file
7
cpp/ql/lib/CHANGELOG.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## 0.0.4
|
||||
|
||||
### New Features
|
||||
|
||||
* The QL library `semmle.code.cpp.commons.Exclusions` now contains a predicate
|
||||
`isFromSystemMacroDefinition` for identifying code that originates from a
|
||||
macro outside the project being analyzed.
|
||||
7
cpp/ql/lib/change-notes/released/0.0.4.md
Normal file
7
cpp/ql/lib/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1,7 @@
|
||||
## 0.0.4
|
||||
|
||||
### New Features
|
||||
|
||||
* The QL library `semmle.code.cpp.commons.Exclusions` now contains a predicate
|
||||
`isFromSystemMacroDefinition` for identifying code that originates from a
|
||||
macro outside the project being analyzed.
|
||||
2
cpp/ql/lib/codeql-pack.release.yml
Normal file
2
cpp/ql/lib/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -1,7 +1,8 @@
|
||||
name: codeql/cpp-all
|
||||
version: 0.0.2
|
||||
version: 0.0.5-dev
|
||||
groups: cpp
|
||||
dbscheme: semmlecode.cpp.dbscheme
|
||||
extractor: cpp
|
||||
library: true
|
||||
dependencies:
|
||||
codeql/cpp-upgrades: 0.0.2
|
||||
codeql/cpp-upgrades: ^0.0.3
|
||||
|
||||
@@ -9,6 +9,83 @@ import semmle.code.cpp.models.interfaces.FormattingFunction
|
||||
private import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
|
||||
private import semmle.code.cpp.rangeanalysis.RangeAnalysisUtils
|
||||
|
||||
private newtype TBufferWriteEstimationReason =
|
||||
TNoSpecifiedEstimateReason() or
|
||||
TTypeBoundsAnalysis() or
|
||||
TValueFlowAnalysis()
|
||||
|
||||
/**
|
||||
* A reason for a specific buffer write size estimate.
|
||||
*/
|
||||
abstract class BufferWriteEstimationReason extends TBufferWriteEstimationReason {
|
||||
/**
|
||||
* Returns the name of the concrete class.
|
||||
*/
|
||||
abstract string toString();
|
||||
|
||||
/**
|
||||
* Returns a human readable representation of this reason.
|
||||
*/
|
||||
abstract string getDescription();
|
||||
|
||||
/**
|
||||
* Combine estimate reasons. Used to give a reason for the size of a format string
|
||||
* conversion given reasons coming from its individual specifiers.
|
||||
*/
|
||||
abstract BufferWriteEstimationReason combineWith(BufferWriteEstimationReason other);
|
||||
}
|
||||
|
||||
/**
|
||||
* No particular reason given. This is currently used for backward compatibility so that
|
||||
* classes derived from BufferWrite and overriding `getMaxData/0` still work with the
|
||||
* queries as intended.
|
||||
*/
|
||||
class NoSpecifiedEstimateReason extends BufferWriteEstimationReason, TNoSpecifiedEstimateReason {
|
||||
override string toString() { result = "NoSpecifiedEstimateReason" }
|
||||
|
||||
override string getDescription() { result = "no reason specified" }
|
||||
|
||||
override BufferWriteEstimationReason combineWith(BufferWriteEstimationReason other) {
|
||||
// this reason should not be used in format specifiers, so it should not be combined
|
||||
// with other reasons
|
||||
none()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The estimation comes from rough bounds just based on the type (e.g.
|
||||
* `0 <= x < 2^32` for an unsigned 32 bit integer).
|
||||
*/
|
||||
class TypeBoundsAnalysis extends BufferWriteEstimationReason, TTypeBoundsAnalysis {
|
||||
override string toString() { result = "TypeBoundsAnalysis" }
|
||||
|
||||
override string getDescription() { result = "based on type bounds" }
|
||||
|
||||
override BufferWriteEstimationReason combineWith(BufferWriteEstimationReason other) {
|
||||
other != TNoSpecifiedEstimateReason() and result = TTypeBoundsAnalysis()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The estimation comes from non trivial bounds found via actual flow analysis.
|
||||
* For example
|
||||
* ```
|
||||
* unsigned u = x;
|
||||
* if (u < 1000) {
|
||||
* //... <- estimation done here based on u
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
class ValueFlowAnalysis extends BufferWriteEstimationReason, TValueFlowAnalysis {
|
||||
override string toString() { result = "ValueFlowAnalysis" }
|
||||
|
||||
override string getDescription() { result = "based on flow analysis of value bounds" }
|
||||
|
||||
override BufferWriteEstimationReason combineWith(BufferWriteEstimationReason other) {
|
||||
other != TNoSpecifiedEstimateReason() and result = other
|
||||
}
|
||||
}
|
||||
|
||||
class PrintfFormatAttribute extends FormatAttribute {
|
||||
PrintfFormatAttribute() { this.getArchetype() = ["printf", "__printf__"] }
|
||||
}
|
||||
@@ -990,7 +1067,14 @@ class FormatLiteral extends Literal {
|
||||
* conversion specifier of this format string; has no result if this cannot
|
||||
* be determined.
|
||||
*/
|
||||
int getMaxConvertedLength(int n) {
|
||||
int getMaxConvertedLength(int n) { result = max(getMaxConvertedLength(n, _)) }
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by the nth
|
||||
* conversion specifier of this format string, specifying the estimation reason;
|
||||
* has no result if this cannot be determined.
|
||||
*/
|
||||
int getMaxConvertedLength(int n, BufferWriteEstimationReason reason) {
|
||||
exists(int len |
|
||||
(
|
||||
(
|
||||
@@ -1002,10 +1086,12 @@ class FormatLiteral extends Literal {
|
||||
) and
|
||||
(
|
||||
this.getConversionChar(n) = "%" and
|
||||
len = 1
|
||||
len = 1 and
|
||||
reason = TValueFlowAnalysis()
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "c" and
|
||||
len = 1 // e.g. 'a'
|
||||
len = 1 and
|
||||
reason = TValueFlowAnalysis() // e.g. 'a'
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "f" and
|
||||
exists(int dot, int afterdot |
|
||||
@@ -1019,7 +1105,8 @@ class FormatLiteral extends Literal {
|
||||
afterdot = 6
|
||||
) and
|
||||
len = 1 + 309 + dot + afterdot
|
||||
) // e.g. -1e308="-100000"...
|
||||
) and
|
||||
reason = TTypeBoundsAnalysis() // e.g. -1e308="-100000"...
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "e" and
|
||||
exists(int dot, int afterdot |
|
||||
@@ -1033,7 +1120,8 @@ class FormatLiteral extends Literal {
|
||||
afterdot = 6
|
||||
) and
|
||||
len = 1 + 1 + dot + afterdot + 1 + 1 + 3
|
||||
) // -1e308="-1.000000e+308"
|
||||
) and
|
||||
reason = TTypeBoundsAnalysis() // -1e308="-1.000000e+308"
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "g" and
|
||||
exists(int dot, int afterdot |
|
||||
@@ -1056,67 +1144,80 @@ class FormatLiteral extends Literal {
|
||||
// (e.g. 123456, 0.000123456 are just OK)
|
||||
// so case %f can be at most P characters + 4 zeroes, sign, dot = P + 6
|
||||
len = (afterdot.maximum(1) + 6).maximum(1 + 1 + dot + afterdot + 1 + 1 + 3)
|
||||
) // (e.g. "-1.59203e-319")
|
||||
) and
|
||||
reason = TTypeBoundsAnalysis() // (e.g. "-1.59203e-319")
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = ["d", "i"] and
|
||||
// e.g. -2^31 = "-2147483648"
|
||||
len =
|
||||
min(float cand |
|
||||
// The first case handles length sub-specifiers
|
||||
// Subtract one in the exponent because one bit is for the sign.
|
||||
// Add 1 to account for the possible sign in the output.
|
||||
cand = 1 + lengthInBase10(2.pow(this.getIntegralDisplayType(n).getSize() * 8 - 1))
|
||||
or
|
||||
// The second case uses range analysis to deduce a length that's shorter than the length
|
||||
// of the number -2^31.
|
||||
exists(Expr arg, float lower, float upper |
|
||||
arg = this.getUse().getConversionArgument(n) and
|
||||
lower = lowerBound(arg.getFullyConverted()) and
|
||||
upper = upperBound(arg.getFullyConverted())
|
||||
|
|
||||
cand =
|
||||
max(int cand0 |
|
||||
// Include the sign bit in the length if it can be negative
|
||||
(
|
||||
if lower < 0
|
||||
then cand0 = 1 + lengthInBase10(lower.abs())
|
||||
else cand0 = lengthInBase10(lower)
|
||||
)
|
||||
or
|
||||
(
|
||||
if upper < 0
|
||||
then cand0 = 1 + lengthInBase10(upper.abs())
|
||||
else cand0 = lengthInBase10(upper)
|
||||
)
|
||||
exists(float typeBasedBound, float valueBasedBound |
|
||||
// The first case handles length sub-specifiers
|
||||
// Subtract one in the exponent because one bit is for the sign.
|
||||
// Add 1 to account for the possible sign in the output.
|
||||
typeBasedBound =
|
||||
1 + lengthInBase10(2.pow(this.getIntegralDisplayType(n).getSize() * 8 - 1)) and
|
||||
// The second case uses range analysis to deduce a length that's shorter than the length
|
||||
// of the number -2^31.
|
||||
exists(Expr arg, float lower, float upper, float typeLower, float typeUpper |
|
||||
arg = this.getUse().getConversionArgument(n) and
|
||||
lower = lowerBound(arg.getFullyConverted()) and
|
||||
upper = upperBound(arg.getFullyConverted()) and
|
||||
typeLower = exprMinVal(arg.getFullyConverted()) and
|
||||
typeUpper = exprMaxVal(arg.getFullyConverted())
|
||||
|
|
||||
valueBasedBound =
|
||||
max(int cand |
|
||||
// Include the sign bit in the length if it can be negative
|
||||
(
|
||||
if lower < 0
|
||||
then cand = 1 + lengthInBase10(lower.abs())
|
||||
else cand = lengthInBase10(lower)
|
||||
)
|
||||
or
|
||||
(
|
||||
if upper < 0
|
||||
then cand = 1 + lengthInBase10(upper.abs())
|
||||
else cand = lengthInBase10(upper)
|
||||
)
|
||||
) and
|
||||
(
|
||||
if lower > typeLower or upper < typeUpper
|
||||
then reason = TValueFlowAnalysis()
|
||||
else reason = TTypeBoundsAnalysis()
|
||||
)
|
||||
)
|
||||
) and
|
||||
len = valueBasedBound.minimum(typeBasedBound)
|
||||
)
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "u" and
|
||||
// e.g. 2^32 - 1 = "4294967295"
|
||||
len =
|
||||
min(float cand |
|
||||
// The first case handles length sub-specifiers
|
||||
cand = 2.pow(this.getIntegralDisplayType(n).getSize() * 8)
|
||||
or
|
||||
// The second case uses range analysis to deduce a length that's shorter than
|
||||
// the length of the number 2^31 - 1.
|
||||
exists(Expr arg, float lower |
|
||||
arg = this.getUse().getConversionArgument(n) and
|
||||
lower = lowerBound(arg.getFullyConverted())
|
||||
|
|
||||
cand =
|
||||
max(float cand0 |
|
||||
exists(float typeBasedBound, float valueBasedBound |
|
||||
// The first case handles length sub-specifiers
|
||||
typeBasedBound = lengthInBase10(2.pow(this.getIntegralDisplayType(n).getSize() * 8) - 1) and
|
||||
// The second case uses range analysis to deduce a length that's shorter than
|
||||
// the length of the number 2^31 - 1.
|
||||
exists(Expr arg, float lower, float upper, float typeLower, float typeUpper |
|
||||
arg = this.getUse().getConversionArgument(n) and
|
||||
lower = lowerBound(arg.getFullyConverted()) and
|
||||
upper = upperBound(arg.getFullyConverted()) and
|
||||
typeLower = exprMinVal(arg.getFullyConverted()) and
|
||||
typeUpper = exprMaxVal(arg.getFullyConverted())
|
||||
|
|
||||
valueBasedBound =
|
||||
lengthInBase10(max(float cand |
|
||||
// If lower can be negative we use `(unsigned)-1` as the candidate value.
|
||||
lower < 0 and
|
||||
cand0 = 2.pow(any(IntType t | t.isUnsigned()).getSize() * 8)
|
||||
cand = 2.pow(any(IntType t | t.isUnsigned()).getSize() * 8)
|
||||
or
|
||||
cand0 = upperBound(arg.getFullyConverted())
|
||||
)
|
||||
cand = upper
|
||||
)) and
|
||||
(
|
||||
if lower > typeLower or upper < typeUpper
|
||||
then reason = TValueFlowAnalysis()
|
||||
else reason = TTypeBoundsAnalysis()
|
||||
)
|
||||
|
|
||||
lengthInBase10(cand)
|
||||
)
|
||||
) and
|
||||
len = valueBasedBound.minimum(typeBasedBound)
|
||||
)
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "x" and
|
||||
// e.g. "12345678"
|
||||
@@ -1135,7 +1236,8 @@ class FormatLiteral extends Literal {
|
||||
(
|
||||
if this.hasAlternateFlag(n) then len = 2 + baseLen else len = baseLen // "0x"
|
||||
)
|
||||
)
|
||||
) and
|
||||
reason = TTypeBoundsAnalysis()
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "p" and
|
||||
exists(PointerType ptrType, int baseLen |
|
||||
@@ -1144,7 +1246,8 @@ class FormatLiteral extends Literal {
|
||||
(
|
||||
if this.hasAlternateFlag(n) then len = 2 + baseLen else len = baseLen // "0x"
|
||||
)
|
||||
)
|
||||
) and
|
||||
reason = TValueFlowAnalysis()
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "o" and
|
||||
// e.g. 2^32 - 1 = "37777777777"
|
||||
@@ -1163,14 +1266,16 @@ class FormatLiteral extends Literal {
|
||||
(
|
||||
if this.hasAlternateFlag(n) then len = 1 + baseLen else len = baseLen // "0"
|
||||
)
|
||||
)
|
||||
) and
|
||||
reason = TTypeBoundsAnalysis()
|
||||
or
|
||||
this.getConversionChar(n).toLowerCase() = "s" and
|
||||
len =
|
||||
min(int v |
|
||||
v = this.getPrecision(n) or
|
||||
v = this.getUse().getFormatArgument(n).(AnalysedString).getMaxLength() - 1 // (don't count null terminator)
|
||||
)
|
||||
) and
|
||||
reason = TValueFlowAnalysis()
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -1182,10 +1287,19 @@ class FormatLiteral extends Literal {
|
||||
* determining whether a buffer overflow is caused by long float to string
|
||||
* conversions.
|
||||
*/
|
||||
int getMaxConvertedLengthLimited(int n) {
|
||||
int getMaxConvertedLengthLimited(int n) { result = max(getMaxConvertedLengthLimited(n, _)) }
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by the nth
|
||||
* conversion specifier of this format string, specifying the reason for the
|
||||
* estimation, except that float to string conversions are assumed to be 8
|
||||
* characters. This is helpful for determining whether a buffer overflow is
|
||||
* caused by long float to string conversions.
|
||||
*/
|
||||
int getMaxConvertedLengthLimited(int n, BufferWriteEstimationReason reason) {
|
||||
if this.getConversionChar(n).toLowerCase() = "f"
|
||||
then result = this.getMaxConvertedLength(n).minimum(8)
|
||||
else result = this.getMaxConvertedLength(n)
|
||||
then result = this.getMaxConvertedLength(n, reason).minimum(8)
|
||||
else result = this.getMaxConvertedLength(n, reason)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1225,29 +1339,35 @@ class FormatLiteral extends Literal {
|
||||
)
|
||||
}
|
||||
|
||||
private int getMaxConvertedLengthAfter(int n) {
|
||||
private int getMaxConvertedLengthAfter(int n, BufferWriteEstimationReason reason) {
|
||||
if n = this.getNumConvSpec()
|
||||
then result = this.getConstantSuffix().length() + 1
|
||||
then result = this.getConstantSuffix().length() + 1 and reason = TValueFlowAnalysis()
|
||||
else
|
||||
result =
|
||||
this.getConstantPart(n).length() + this.getMaxConvertedLength(n) +
|
||||
this.getMaxConvertedLengthAfter(n + 1)
|
||||
exists(BufferWriteEstimationReason headReason, BufferWriteEstimationReason tailReason |
|
||||
result =
|
||||
this.getConstantPart(n).length() + this.getMaxConvertedLength(n, headReason) +
|
||||
this.getMaxConvertedLengthAfter(n + 1, tailReason) and
|
||||
reason = headReason.combineWith(tailReason)
|
||||
)
|
||||
}
|
||||
|
||||
private int getMaxConvertedLengthAfterLimited(int n) {
|
||||
private int getMaxConvertedLengthAfterLimited(int n, BufferWriteEstimationReason reason) {
|
||||
if n = this.getNumConvSpec()
|
||||
then result = this.getConstantSuffix().length() + 1
|
||||
then result = this.getConstantSuffix().length() + 1 and reason = TValueFlowAnalysis()
|
||||
else
|
||||
result =
|
||||
this.getConstantPart(n).length() + this.getMaxConvertedLengthLimited(n) +
|
||||
this.getMaxConvertedLengthAfterLimited(n + 1)
|
||||
exists(BufferWriteEstimationReason headReason, BufferWriteEstimationReason tailReason |
|
||||
result =
|
||||
this.getConstantPart(n).length() + this.getMaxConvertedLengthLimited(n, headReason) +
|
||||
this.getMaxConvertedLengthAfterLimited(n + 1, tailReason) and
|
||||
reason = headReason.combineWith(tailReason)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by this format
|
||||
* string. Has no result if this cannot be determined.
|
||||
*/
|
||||
int getMaxConvertedLength() { result = this.getMaxConvertedLengthAfter(0) }
|
||||
int getMaxConvertedLength() { result = this.getMaxConvertedLengthAfter(0, _) }
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by this format
|
||||
@@ -1255,5 +1375,24 @@ class FormatLiteral extends Literal {
|
||||
* characters. This is helpful for determining whether a buffer overflow
|
||||
* is caused by long float to string conversions.
|
||||
*/
|
||||
int getMaxConvertedLengthLimited() { result = this.getMaxConvertedLengthAfterLimited(0) }
|
||||
int getMaxConvertedLengthLimited() { result = this.getMaxConvertedLengthAfterLimited(0, _) }
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by this format
|
||||
* string, specifying the reason for the estimate. Has no result if no estimate
|
||||
* can be found.
|
||||
*/
|
||||
int getMaxConvertedLengthWithReason(BufferWriteEstimationReason reason) {
|
||||
result = this.getMaxConvertedLengthAfter(0, reason)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the maximum length of the string that can be produced by this format
|
||||
* string, specifying the reason for the estimate, except that float to string
|
||||
* conversions are assumed to be 8 characters. This is helpful for determining
|
||||
* whether a buffer overflow is caused by long float to string conversions.
|
||||
*/
|
||||
int getMaxConvertedLengthLimitedWithReason(BufferWriteEstimationReason reason) {
|
||||
result = this.getMaxConvertedLengthAfterLimited(0, reason)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,13 +71,30 @@ abstract class BufferWrite extends Expr {
|
||||
*/
|
||||
int getMaxData() { none() }
|
||||
|
||||
/**
|
||||
* Gets an upper bound to the amount of data that's being written (if one
|
||||
* can be found), specifying the reason for the estimation.
|
||||
*/
|
||||
int getMaxData(BufferWriteEstimationReason reason) {
|
||||
reason instanceof NoSpecifiedEstimateReason and result = getMaxData()
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an upper bound to the amount of data that's being written (if one
|
||||
* can be found), except that float to string conversions are assumed to be
|
||||
* much smaller (8 bytes) than their true maximum length. This can be
|
||||
* helpful in determining the cause of a buffer overflow issue.
|
||||
*/
|
||||
int getMaxDataLimited() { result = this.getMaxData() }
|
||||
int getMaxDataLimited() { result = getMaxData() }
|
||||
|
||||
/**
|
||||
* Gets an upper bound to the amount of data that's being written (if one
|
||||
* can be found), specifying the reason for the estimation, except that
|
||||
* float to string conversions are assumed to be much smaller (8 bytes)
|
||||
* than their true maximum length. This can be helpful in determining the
|
||||
* cause of a buffer overflow issue.
|
||||
*/
|
||||
int getMaxDataLimited(BufferWriteEstimationReason reason) { result = getMaxData(reason) }
|
||||
|
||||
/**
|
||||
* Gets the size of a single character of the type this
|
||||
@@ -135,10 +152,16 @@ class StrCopyBW extends BufferWriteCall {
|
||||
result = this.getArgument(this.getParamSize()).getValue().toInt() * this.getCharSize()
|
||||
}
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
// when result exists, it is an exact flow analysis
|
||||
reason instanceof ValueFlowAnalysis and
|
||||
result =
|
||||
this.getArgument(this.getParamSrc()).(AnalysedString).getMaxLength() * this.getCharSize()
|
||||
}
|
||||
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -173,10 +196,16 @@ class StrCatBW extends BufferWriteCall {
|
||||
result = this.getArgument(this.getParamSize()).getValue().toInt() * this.getCharSize()
|
||||
}
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
// when result exists, it is an exact flow analysis
|
||||
reason instanceof ValueFlowAnalysis and
|
||||
result =
|
||||
this.getArgument(this.getParamSrc()).(AnalysedString).getMaxLength() * this.getCharSize()
|
||||
}
|
||||
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -233,19 +262,29 @@ class SprintfBW extends BufferWriteCall {
|
||||
|
||||
override Expr getDest() { result = this.getArgument(f.getOutputParameterIndex(false)) }
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
exists(FormatLiteral fl |
|
||||
fl = this.(FormattingFunctionCall).getFormat() and
|
||||
result = fl.getMaxConvertedLength() * this.getCharSize()
|
||||
result = fl.getMaxConvertedLengthWithReason(reason) * this.getCharSize()
|
||||
)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited() {
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
|
||||
private int getMaxDataLimitedImpl(BufferWriteEstimationReason reason) {
|
||||
exists(FormatLiteral fl |
|
||||
fl = this.(FormattingFunctionCall).getFormat() and
|
||||
result = fl.getMaxConvertedLengthLimited() * this.getCharSize()
|
||||
result = fl.getMaxConvertedLengthLimitedWithReason(reason) * this.getCharSize()
|
||||
)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited(BufferWriteEstimationReason reason) {
|
||||
result = getMaxDataLimitedImpl(reason)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited() { result = max(getMaxDataLimitedImpl(_)) }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -336,19 +375,29 @@ class SnprintfBW extends BufferWriteCall {
|
||||
result = this.getArgument(this.getParamSize()).getValue().toInt() * this.getCharSize()
|
||||
}
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
exists(FormatLiteral fl |
|
||||
fl = this.(FormattingFunctionCall).getFormat() and
|
||||
result = fl.getMaxConvertedLength() * this.getCharSize()
|
||||
result = fl.getMaxConvertedLengthWithReason(reason) * this.getCharSize()
|
||||
)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited() {
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
|
||||
private int getMaxDataLimitedImpl(BufferWriteEstimationReason reason) {
|
||||
exists(FormatLiteral fl |
|
||||
fl = this.(FormattingFunctionCall).getFormat() and
|
||||
result = fl.getMaxConvertedLengthLimited() * this.getCharSize()
|
||||
result = fl.getMaxConvertedLengthLimitedWithReason(reason) * this.getCharSize()
|
||||
)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited(BufferWriteEstimationReason reason) {
|
||||
result = getMaxDataLimitedImpl(reason)
|
||||
}
|
||||
|
||||
override int getMaxDataLimited() { result = max(getMaxDataLimitedImpl(_)) }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -436,7 +485,9 @@ class ScanfBW extends BufferWrite {
|
||||
|
||||
override Expr getDest() { result = this }
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
// when this returns, it is based on exact flow analysis
|
||||
reason instanceof ValueFlowAnalysis and
|
||||
exists(ScanfFunctionCall fc, ScanfFormatLiteral fl, int arg |
|
||||
this = fc.getArgument(arg) and
|
||||
fl = fc.getFormat() and
|
||||
@@ -444,6 +495,10 @@ class ScanfBW extends BufferWrite {
|
||||
)
|
||||
}
|
||||
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
|
||||
override string getBWDesc() {
|
||||
exists(FunctionCall fc |
|
||||
this = fc.getArgument(_) and
|
||||
@@ -474,8 +529,14 @@ class RealpathBW extends BufferWriteCall {
|
||||
|
||||
override Expr getASource() { result = this.getArgument(0) }
|
||||
|
||||
override int getMaxData() {
|
||||
private int getMaxDataImpl(BufferWriteEstimationReason reason) {
|
||||
// although there may be some unknown invariants guaranteeing that a real path is shorter than PATH_MAX, we can consider providing less than PATH_MAX a problem with high precision
|
||||
reason instanceof ValueFlowAnalysis and
|
||||
result = path_max() and
|
||||
this = this // Suppress a compiler warning
|
||||
}
|
||||
|
||||
override int getMaxData(BufferWriteEstimationReason reason) { result = getMaxDataImpl(reason) }
|
||||
|
||||
override int getMaxData() { result = max(getMaxDataImpl(_)) }
|
||||
}
|
||||
|
||||
5
cpp/ql/src/CHANGELOG.md
Normal file
5
cpp/ql/src/CHANGELOG.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## 0.0.4
|
||||
|
||||
### New Queries
|
||||
|
||||
* A new query `cpp/non-https-url` has been added for C/C++. The query flags uses of `http` URLs that might be better replaced with `https`.
|
||||
@@ -85,7 +85,8 @@ private predicate cancelingSubExprs(ComparisonOperation cmp, VariableAccess a1,
|
||||
exists(Variable v |
|
||||
exists(float m | m < 0 and cmpLinearSubVariable(cmp, v, a1, m)) and
|
||||
exists(float m | m > 0 and cmpLinearSubVariable(cmp, v, a2, m))
|
||||
)
|
||||
) and
|
||||
not any(ClassTemplateInstantiation inst).getATemplateArgument() = cmp.getParent*()
|
||||
}
|
||||
|
||||
from ComparisonOperation cmp, VariableAccess a1, VariableAccess a2
|
||||
|
||||
@@ -29,7 +29,9 @@ predicate pointlessSelfComparison(ComparisonOperation cmp) {
|
||||
not exists(lhs.getQualifier()) and // Avoid structure fields
|
||||
not exists(rhs.getQualifier()) and // Avoid structure fields
|
||||
not convertedExprMightOverflow(lhs) and
|
||||
not convertedExprMightOverflow(rhs)
|
||||
not convertedExprMightOverflow(rhs) and
|
||||
// Don't warn if the comparison is part of a template argument.
|
||||
not any(ClassTemplateInstantiation inst).getATemplateArgument() = cmp.getParent*()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -21,14 +21,15 @@ import semmle.code.cpp.commons.Alloc
|
||||
* See CWE-120/UnboundedWrite.ql for a summary of CWE-120 alert cases.
|
||||
*/
|
||||
|
||||
from BufferWrite bw, Expr dest, int destSize
|
||||
from BufferWrite bw, Expr dest, int destSize, int estimated
|
||||
where
|
||||
not bw.hasExplicitLimit() and // has no explicit size limit
|
||||
dest = bw.getDest() and
|
||||
destSize = getBufferSize(dest, _) and
|
||||
estimated = bw.getMaxDataLimited(_) and
|
||||
// we can deduce that too much data may be copied (even without
|
||||
// long '%f' conversions)
|
||||
bw.getMaxDataLimited() > destSize
|
||||
estimated > destSize
|
||||
select bw,
|
||||
"This '" + bw.getBWDesc() + "' operation requires " + bw.getMaxData() +
|
||||
"This '" + bw.getBWDesc() + "' operation requires " + estimated +
|
||||
" bytes but the destination is only " + destSize + " bytes."
|
||||
|
||||
@@ -21,14 +21,15 @@ import semmle.code.cpp.security.BufferWrite
|
||||
* See CWE-120/UnboundedWrite.ql for a summary of CWE-120 alert cases.
|
||||
*/
|
||||
|
||||
from BufferWrite bw, int destSize
|
||||
from BufferWrite bw, int destSize, int estimated, BufferWriteEstimationReason reason
|
||||
where
|
||||
not bw.hasExplicitLimit() and
|
||||
// has no explicit size limit
|
||||
destSize = getBufferSize(bw.getDest(), _) and
|
||||
bw.getMaxData() > destSize and
|
||||
estimated = bw.getMaxData(reason) and
|
||||
estimated > destSize and
|
||||
// and we can deduce that too much data may be copied
|
||||
bw.getMaxDataLimited() <= destSize // but it would fit without long '%f' conversions
|
||||
bw.getMaxDataLimited(reason) <= destSize // but it would fit without long '%f' conversions
|
||||
select bw,
|
||||
"This '" + bw.getBWDesc() + "' operation may require " + bw.getMaxData() +
|
||||
"This '" + bw.getBWDesc() + "' operation may require " + estimated +
|
||||
" bytes because of float conversions, but the target is only " + destSize + " bytes."
|
||||
|
||||
@@ -44,7 +44,7 @@ import TaintedWithPath
|
||||
|
||||
predicate isUnboundedWrite(BufferWrite bw) {
|
||||
not bw.hasExplicitLimit() and // has no explicit size limit
|
||||
not exists(bw.getMaxData()) // and we can't deduce an upper bound to the amount copied
|
||||
not exists(bw.getMaxData(_)) // and we can't deduce an upper bound to the amount copied
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
5
cpp/ql/src/change-notes/released/0.0.4.md
Normal file
5
cpp/ql/src/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## 0.0.4
|
||||
|
||||
### New Queries
|
||||
|
||||
* A new query `cpp/non-https-url` has been added for C/C++. The query flags uses of `http` URLs that might be better replaced with `https`.
|
||||
2
cpp/ql/src/codeql-pack.release.yml
Normal file
2
cpp/ql/src/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -1,5 +1,6 @@
|
||||
name: codeql/cpp-queries
|
||||
version: 0.0.2
|
||||
version: 0.0.5-dev
|
||||
groups: cpp
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/suite-helpers: "*"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql/cpp-tests
|
||||
version: 0.0.2
|
||||
groups: [cpp, test]
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/cpp-queries: "*"
|
||||
|
||||
@@ -20,3 +20,22 @@ bool compareValues() {
|
||||
bool callCompareValues() {
|
||||
return compareValues<C1, C2> || compareValues<C1, C1>();
|
||||
}
|
||||
|
||||
template <bool C, typename T = void>
|
||||
struct enable_if {};
|
||||
|
||||
template <typename T>
|
||||
struct enable_if<true, T> { typedef T type; };
|
||||
|
||||
template<typename T1, typename T2>
|
||||
typename enable_if<T1::value <= T2::value, bool>::type constant_comparison() {
|
||||
return true;
|
||||
}
|
||||
|
||||
struct Value0 {
|
||||
const static int value = 0;
|
||||
};
|
||||
|
||||
void instantiation_with_pointless_comparison() {
|
||||
constant_comparison<Value0, Value0>(); // GOOD
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
# This directory has its own qlpack for reasons detailed in commit 2550788598010fa2117274607c9d58f64f997f34
|
||||
name: codeql/cpp-tests-cwe-190-tainted
|
||||
version: 0.0.2
|
||||
groups: [cpp, test]
|
||||
dependencies:
|
||||
codeql/cpp-all: "*"
|
||||
codeql/cpp-queries: "*"
|
||||
|
||||
1
cpp/upgrades/CHANGELOG.md
Normal file
1
cpp/upgrades/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
1
cpp/upgrades/change-notes/released/0.0.4.md
Normal file
1
cpp/upgrades/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
2
cpp/upgrades/codeql-pack.release.yml
Normal file
2
cpp/upgrades/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -1,4 +1,5 @@
|
||||
name: codeql/cpp-upgrades
|
||||
groups: cpp
|
||||
upgrades: .
|
||||
version: 0.0.2
|
||||
version: 0.0.5-dev
|
||||
library: true
|
||||
|
||||
@@ -1,25 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
|
||||
<PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Autobuild.CSharp\Semmle.Autobuild.CSharp.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.IO.FileSystem" Version="4.3.0"/>
|
||||
<PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0"/>
|
||||
<PackageReference Include="xunit" Version="2.4.1"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Autobuild.CSharp\Semmle.Autobuild.CSharp.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,30 +1,25 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Autobuild.CSharp</AssemblyName>
|
||||
<RootNamespace>Semmle.Autobuild.CSharp</RootNamespace>
|
||||
<ApplicationIcon />
|
||||
<OutputType>Exe</OutputType>
|
||||
<StartupObject />
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.9.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Util\Semmle.Util.csproj" />
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Autobuild.CSharp</AssemblyName>
|
||||
<RootNamespace>Semmle.Autobuild.CSharp</RootNamespace>
|
||||
<ApplicationIcon/>
|
||||
<OutputType>Exe</OutputType>
|
||||
<StartupObject/>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.11.0"/>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Util\Semmle.Util.csproj"/>
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,24 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Autobuild.Shared</AssemblyName>
|
||||
<RootNamespace>Semmle.Autobuild.Shared</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.9.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Autobuild.Shared</AssemblyName>
|
||||
<RootNamespace>Semmle.Autobuild.Shared</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.11.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\extractor\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,6 +1,7 @@
|
||||
package,sink,source,summary,sink:code,sink:html,sink:remote,sink:sql,sink:xss,source:local,summary:taint
|
||||
Dapper,55,,,,,,55,,,
|
||||
Microsoft.ApplicationBlocks.Data,28,,,,,,28,,,
|
||||
MySql.Data.MySqlClient,48,,,,,,48,,,
|
||||
ServiceStack,194,,7,27,,75,92,,,7
|
||||
System,28,3,25,,4,,23,1,3,25
|
||||
package,sink,source,summary,sink:code,sink:html,sink:remote,sink:sql,sink:xss,source:local,summary:taint,summary:value
|
||||
Dapper,55,,,,,,55,,,,
|
||||
Microsoft.ApplicationBlocks.Data,28,,,,,,28,,,,
|
||||
MySql.Data.MySqlClient,48,,,,,,48,,,,
|
||||
Newtonsoft.Json,,,73,,,,,,,73,
|
||||
ServiceStack,194,,7,27,,75,92,,,7,
|
||||
System,28,3,691,,4,,23,1,3,593,98
|
||||
|
||||
|
@@ -8,7 +8,7 @@ C# framework & library support
|
||||
|
||||
Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting`
|
||||
`ServiceStack <https://servicestack.net/>`_,"``ServiceStack.*``, ``ServiceStack``",,7,194,
|
||||
System,"``System.*``, ``System``",3,25,28,5
|
||||
Others,"``Dapper``, ``Microsoft.ApplicationBlocks.Data``, ``MySql.Data.MySqlClient``",,,131,
|
||||
Totals,,3,32,353,5
|
||||
System,"``System.*``, ``System``",3,691,28,5
|
||||
Others,"``Dapper``, ``Microsoft.ApplicationBlocks.Data``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``",,73,131,
|
||||
Totals,,3,771,353,5
|
||||
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DiaSymReader" Version="1.3.0" />
|
||||
<PackageReference Include="Microsoft.DiaSymReader.Native" Version="1.7.0" />
|
||||
<PackageReference Include="Microsoft.DiaSymReader.PortablePdb" Version="1.5.0" />
|
||||
<PackageReference Include="Microsoft.DiaSymReader.PortablePdb" Version="1.6.0"><IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,33 +1,28 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction.CSharp.Standalone</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction.CSharp.Standalone</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.9.0" />
|
||||
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0" />
|
||||
<PackageReference Include="System.Net.Primitives" Version="4.3.1" />
|
||||
<PackageReference Include="System.Security.Principal" Version="4.3.0" />
|
||||
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction.CSharp.Standalone</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction.CSharp.Standalone</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors/>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.11.0"/>
|
||||
<PackageReference Include="Microsoft.Win32.Primitives" Version="4.3.0"/>
|
||||
<PackageReference Include="System.Net.Primitives" Version="4.3.1"/>
|
||||
<PackageReference Include="System.Security.Principal" Version="4.3.0"/>
|
||||
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -18,6 +18,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
private void VisitParameter(ParameterSyntax p)
|
||||
{
|
||||
var symbol = Context.GetModel(p).GetDeclaredSymbol(p)!;
|
||||
Context.CacheLambdaParameterSymbol(symbol, p);
|
||||
Parameter.Create(Context, symbol, this);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,11 +55,17 @@ namespace Semmle.Extraction.CSharp.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public static Parameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null) =>
|
||||
ParameterFactory.Instance.CreateEntity(cx, param, (param, parent, original));
|
||||
public static Parameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null)
|
||||
{
|
||||
var cachedSymbol = cx.GetPossiblyCachedParameterSymbol(param);
|
||||
return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, parent, original));
|
||||
}
|
||||
|
||||
public static Parameter Create(Context cx, IParameterSymbol param) =>
|
||||
ParameterFactory.Instance.CreateEntity(cx, param, (param, null, null));
|
||||
public static Parameter Create(Context cx, IParameterSymbol param)
|
||||
{
|
||||
var cachedSymbol = cx.GetPossiblyCachedParameterSymbol(param);
|
||||
return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, null, null));
|
||||
}
|
||||
|
||||
public override void WriteId(EscapingTextWriter trapFile)
|
||||
{
|
||||
|
||||
@@ -18,18 +18,56 @@ namespace Semmle.Extraction.CSharp
|
||||
/// </summary>
|
||||
public SemanticModel GetModel(SyntaxNode node)
|
||||
{
|
||||
// todo: when this context belongs to a SourceScope, the syntax tree can be retrieved from the scope, and
|
||||
// the node parameter could be removed. Is there any case when we pass in a node that's not from the current
|
||||
// tree?
|
||||
if (cachedModel is null || node.SyntaxTree != cachedModel.SyntaxTree)
|
||||
if (node.SyntaxTree == SourceTree)
|
||||
{
|
||||
cachedModel = Compilation.GetSemanticModel(node.SyntaxTree);
|
||||
if (cachedModelForTree is null)
|
||||
{
|
||||
cachedModelForTree = Compilation.GetSemanticModel(node.SyntaxTree);
|
||||
}
|
||||
|
||||
return cachedModelForTree;
|
||||
}
|
||||
|
||||
return cachedModel;
|
||||
if (cachedModelForOtherTrees is null || node.SyntaxTree != cachedModelForOtherTrees.SyntaxTree)
|
||||
{
|
||||
cachedModelForOtherTrees = Compilation.GetSemanticModel(node.SyntaxTree);
|
||||
}
|
||||
|
||||
return cachedModelForOtherTrees;
|
||||
}
|
||||
|
||||
private SemanticModel? cachedModel;
|
||||
private SemanticModel? cachedModelForTree;
|
||||
private SemanticModel? cachedModelForOtherTrees;
|
||||
|
||||
// The below is a workaround to the bug reported in https://github.com/dotnet/roslyn/issues/58226
|
||||
// Lambda parameters that are equal according to `SymbolEqualityComparer.Default`, might have different
|
||||
// hash-codes, and as a result might not be found in `symbolEntityCache` by hash-code lookup.
|
||||
internal IParameterSymbol GetPossiblyCachedParameterSymbol(IParameterSymbol param)
|
||||
{
|
||||
if ((param.ContainingSymbol as IMethodSymbol)?.MethodKind != MethodKind.AnonymousFunction)
|
||||
{
|
||||
return param;
|
||||
}
|
||||
|
||||
foreach (var sr in param.DeclaringSyntaxReferences)
|
||||
{
|
||||
var syntax = sr.GetSyntax();
|
||||
if (lambdaParameterCache.TryGetValue(syntax, out var cached) &&
|
||||
SymbolEqualityComparer.Default.Equals(param, cached))
|
||||
{
|
||||
return cached;
|
||||
}
|
||||
}
|
||||
|
||||
return param;
|
||||
}
|
||||
|
||||
internal void CacheLambdaParameterSymbol(IParameterSymbol param, SyntaxNode syntax)
|
||||
{
|
||||
lambdaParameterCache[syntax] = param;
|
||||
}
|
||||
|
||||
private readonly Dictionary<SyntaxNode, IParameterSymbol> lambdaParameterCache = new Dictionary<SyntaxNode, IParameterSymbol>();
|
||||
|
||||
/// <summary>
|
||||
/// The current compilation unit.
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction.CSharp</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction.CSharp</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CIL\Semmle.Extraction.CIL.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Extraction\Semmle.Extraction.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0" />
|
||||
<PackageReference Include="Microsoft.Build" Version="16.9.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction.CSharp</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction.CSharp</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CIL\Semmle.Extraction.CIL.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Extraction\Semmle.Extraction.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.0.1"/>
|
||||
<PackageReference Include="Microsoft.Build" Version="16.11.0"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,28 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
|
||||
<PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Extraction\Semmle.Extraction.csproj" />
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.IO.FileSystem" Version="4.3.0"/>
|
||||
<PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0"/>
|
||||
<PackageReference Include="xunit" Version="2.4.1"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Extraction\Semmle.Extraction.csproj"/>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,29 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<CodeAnalysisRuleSet>Semmle.Extraction.ruleset</CodeAnalysisRuleSet>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DefineConstants>TRACE;DEBUG;DEBUG_LABELS</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis" Version="3.9.0" />
|
||||
<PackageReference Include="GitInfo" Version="2.1.2">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<AssemblyName>Semmle.Extraction</AssemblyName>
|
||||
<RootNamespace>Semmle.Extraction</RootNamespace>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<CodeAnalysisRuleSet>Semmle.Extraction.ruleset</CodeAnalysisRuleSet>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DefineConstants>TRACE;DEBUG;DEBUG_LABELS</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis" Version="4.0.1"/>
|
||||
<PackageReference Include="GitInfo" Version="2.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,23 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.4.1"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Semmle.Util\Semmle.Util.csproj"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
1
csharp/ql/lib/CHANGELOG.md
Normal file
1
csharp/ql/lib/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
1
csharp/ql/lib/change-notes/released/0.0.4.md
Normal file
1
csharp/ql/lib/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
2
csharp/ql/lib/codeql-pack.release.yml
Normal file
2
csharp/ql/lib/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -1,7 +1,8 @@
|
||||
name: codeql/csharp-all
|
||||
version: 0.0.2
|
||||
version: 0.0.5-dev
|
||||
groups: csharp
|
||||
dbscheme: semmlecode.csharp.dbscheme
|
||||
extractor: csharp
|
||||
library: true
|
||||
dependencies:
|
||||
codeql/csharp-upgrades: 0.0.2
|
||||
codeql/csharp-upgrades: ^0.0.3
|
||||
|
||||
@@ -205,7 +205,7 @@ private class RefArg extends AssignableAccess {
|
||||
*/
|
||||
predicate isAnalyzable(Parameter p) {
|
||||
exists(Callable callable | callable = this.getUnboundDeclarationTarget(p) |
|
||||
not callable.(Virtualizable).isOverridableOrImplementable() and
|
||||
not callable.(Overridable).isOverridableOrImplementable() and
|
||||
callable.hasBody()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Provides logic for determining interface member implementations.
|
||||
*
|
||||
* Do not use the predicates in this library directly; use the methods
|
||||
* of the class `Virtualizable` instead.
|
||||
* of the class `Overridable` instead.
|
||||
*/
|
||||
|
||||
import csharp
|
||||
@@ -35,7 +35,26 @@ private import Conversion
|
||||
* `implements(A.M, I.M, B)` and `implements(C.M, I.M, C)`.
|
||||
*/
|
||||
cached
|
||||
predicate implements(Virtualizable m1, Virtualizable m2, ValueOrRefType t) {
|
||||
predicate implements(Overridable m1, Overridable m2, ValueOrRefType t) {
|
||||
implementsVirtualizable(m1, m2, t)
|
||||
or
|
||||
exists(DeclarationWithAccessors d1, DeclarationWithAccessors d2, int kind |
|
||||
implementsVirtualizable(d1, d2, t) and
|
||||
hasAccessor(d1, m1, pragma[only_bind_into](kind)) and
|
||||
hasAccessor(d2, m2, pragma[only_bind_into](kind))
|
||||
)
|
||||
}
|
||||
|
||||
pragma[noinline]
|
||||
private predicate hasAccessor(DeclarationWithAccessors d, Accessor a, int kind) {
|
||||
a = d.getAnAccessor() and
|
||||
(
|
||||
accessors(a, kind, _, _, _) or
|
||||
event_accessors(a, kind, _, _, _)
|
||||
)
|
||||
}
|
||||
|
||||
private predicate implementsVirtualizable(Virtualizable m1, Virtualizable m2, ValueOrRefType t) {
|
||||
exists(Interface i |
|
||||
i = m2.getDeclaringType() and
|
||||
t.getABaseInterface+() = i and
|
||||
|
||||
@@ -180,29 +180,15 @@ class Member extends DotNet::Member, Modifiable, @member {
|
||||
override predicate isStatic() { Modifiable.super.isStatic() }
|
||||
}
|
||||
|
||||
private class TOverridable = @virtualizable or @callable_accessor;
|
||||
|
||||
/**
|
||||
* A member where the `virtual` modifier is valid. That is, a method,
|
||||
* a property, an indexer, or an event.
|
||||
* A declaration that can be overridden or implemented. That is, a method,
|
||||
* a property, an indexer, an event, or an accessor.
|
||||
*
|
||||
* Equivalently, these are the members that can be defined in an interface.
|
||||
* Unlike `Virtualizable`, this class includes accessors.
|
||||
*/
|
||||
class Virtualizable extends Member, @virtualizable {
|
||||
/** Holds if this member has the modifier `override`. */
|
||||
predicate isOverride() { this.hasModifier("override") }
|
||||
|
||||
/** Holds if this member is `virtual`. */
|
||||
predicate isVirtual() { this.hasModifier("virtual") }
|
||||
|
||||
override predicate isPublic() {
|
||||
Member.super.isPublic() or
|
||||
this.implementsExplicitInterface()
|
||||
}
|
||||
|
||||
override predicate isPrivate() {
|
||||
super.isPrivate() and
|
||||
not this.implementsExplicitInterface()
|
||||
}
|
||||
|
||||
class Overridable extends Declaration, TOverridable {
|
||||
/**
|
||||
* Gets any interface this member explicitly implements; this only applies
|
||||
* to members that can be declared on an interface, i.e. methods, properties,
|
||||
@@ -216,19 +202,10 @@ class Virtualizable extends Member, @virtualizable {
|
||||
predicate implementsExplicitInterface() { exists(this.getExplicitlyImplementedInterface()) }
|
||||
|
||||
/** Holds if this member can be overridden or implemented. */
|
||||
predicate isOverridableOrImplementable() {
|
||||
not this.isSealed() and
|
||||
not this.getDeclaringType().isSealed() and
|
||||
(
|
||||
this.isVirtual() or
|
||||
this.isOverride() or
|
||||
this.isAbstract() or
|
||||
this.getDeclaringType() instanceof Interface
|
||||
)
|
||||
}
|
||||
predicate isOverridableOrImplementable() { none() }
|
||||
|
||||
/** Gets the member that is immediately overridden by this member, if any. */
|
||||
Virtualizable getOverridee() {
|
||||
Overridable getOverridee() {
|
||||
overrides(this, result)
|
||||
or
|
||||
// For accessors (which are `Callable`s), the extractor generates entries
|
||||
@@ -242,7 +219,7 @@ class Virtualizable extends Member, @virtualizable {
|
||||
}
|
||||
|
||||
/** Gets a member that immediately overrides this member, if any. */
|
||||
Virtualizable getAnOverrider() { this = result.getOverridee() }
|
||||
Overridable getAnOverrider() { this = result.getOverridee() }
|
||||
|
||||
/** Holds if this member is overridden by some other member. */
|
||||
predicate isOverridden() { exists(this.getAnOverrider()) }
|
||||
@@ -273,10 +250,10 @@ class Virtualizable extends Member, @virtualizable {
|
||||
* `A.M.getImplementee(B) = I.M` and
|
||||
* `C.M.getImplementee(C) = I.M`.
|
||||
*/
|
||||
Virtualizable getImplementee(ValueOrRefType t) { implements(this, result, t) }
|
||||
Overridable getImplementee(ValueOrRefType t) { implements(this, result, t) }
|
||||
|
||||
/** Gets the interface member that is immediately implemented by this member, if any. */
|
||||
Virtualizable getImplementee() { result = this.getImplementee(_) }
|
||||
Overridable getImplementee() { result = this.getImplementee(_) }
|
||||
|
||||
/**
|
||||
* Gets a member that immediately implements this interface member, if any.
|
||||
@@ -301,10 +278,10 @@ class Virtualizable extends Member, @virtualizable {
|
||||
* `I.M.getAnImplementor(B) = A.M` and
|
||||
* `I.M.getAnImplementor(C) = C.M`.
|
||||
*/
|
||||
Virtualizable getAnImplementor(ValueOrRefType t) { this = result.getImplementee(t) }
|
||||
Overridable getAnImplementor(ValueOrRefType t) { this = result.getImplementee(t) }
|
||||
|
||||
/** Gets a member that immediately implements this interface member, if any. */
|
||||
Virtualizable getAnImplementor() { this = result.getImplementee() }
|
||||
Overridable getAnImplementor() { this = result.getImplementee() }
|
||||
|
||||
/**
|
||||
* Gets an interface member that is (transitively) implemented by this
|
||||
@@ -334,8 +311,8 @@ class Virtualizable extends Member, @virtualizable {
|
||||
* - If this member is `D.M` then `I.M = getAnUltimateImplementee()`.
|
||||
*/
|
||||
pragma[nomagic]
|
||||
Virtualizable getAnUltimateImplementee() {
|
||||
exists(Virtualizable implementation, ValueOrRefType implementationType |
|
||||
Overridable getAnUltimateImplementee() {
|
||||
exists(Overridable implementation, ValueOrRefType implementationType |
|
||||
implements(implementation, result, implementationType)
|
||||
|
|
||||
this = implementation
|
||||
@@ -354,7 +331,7 @@ class Virtualizable extends Member, @virtualizable {
|
||||
* Note that this is generally *not* equivalent with
|
||||
* `getImplementor().getAnOverrider*()` (see `getImplementee`).
|
||||
*/
|
||||
Virtualizable getAnUltimateImplementor() { this = result.getAnUltimateImplementee() }
|
||||
Overridable getAnUltimateImplementor() { this = result.getAnUltimateImplementee() }
|
||||
|
||||
/** Holds if this interface member is implemented by some other member. */
|
||||
predicate isImplemented() { exists(this.getAnImplementor()) }
|
||||
@@ -362,14 +339,59 @@ class Virtualizable extends Member, @virtualizable {
|
||||
/** Holds if this member implements (transitively) an interface member. */
|
||||
predicate implements() { exists(this.getAnUltimateImplementee()) }
|
||||
|
||||
/**
|
||||
* Holds if this member overrides or implements (transitively)
|
||||
* `that` member.
|
||||
*/
|
||||
predicate overridesOrImplements(Overridable that) {
|
||||
this.getOverridee+() = that or
|
||||
this.getAnUltimateImplementee() = that
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if this member overrides or implements (reflexively, transitively)
|
||||
* `that` member.
|
||||
*/
|
||||
predicate overridesOrImplementsOrEquals(Virtualizable that) {
|
||||
predicate overridesOrImplementsOrEquals(Overridable that) {
|
||||
this = that or
|
||||
this.getOverridee+() = that or
|
||||
this.getAnUltimateImplementee() = that
|
||||
this.overridesOrImplements(that)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A member where the `virtual` modifier is valid. That is, a method,
|
||||
* a property, an indexer, or an event.
|
||||
*
|
||||
* Equivalently, these are the members that can be defined in an interface.
|
||||
*
|
||||
* Unlike `Overridable`, this class excludes accessors.
|
||||
*/
|
||||
class Virtualizable extends Overridable, Member, @virtualizable {
|
||||
/** Holds if this member has the modifier `override`. */
|
||||
predicate isOverride() { this.hasModifier("override") }
|
||||
|
||||
/** Holds if this member is `virtual`. */
|
||||
predicate isVirtual() { this.hasModifier("virtual") }
|
||||
|
||||
override predicate isPublic() {
|
||||
Member.super.isPublic() or
|
||||
this.implementsExplicitInterface()
|
||||
}
|
||||
|
||||
override predicate isPrivate() {
|
||||
super.isPrivate() and
|
||||
not this.implementsExplicitInterface()
|
||||
}
|
||||
|
||||
override predicate isOverridableOrImplementable() {
|
||||
not this.isSealed() and
|
||||
not this.getDeclaringType().isSealed() and
|
||||
(
|
||||
this.isVirtual() or
|
||||
this.isOverride() or
|
||||
this.isAbstract() or
|
||||
this.getDeclaringType() instanceof Interface
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ class Indexer extends DeclarationWithGetSetAccessors, Parameterizable, @indexer
|
||||
* An accessor. Either a getter (`Getter`), a setter (`Setter`), or event
|
||||
* accessor (`EventAccessor`).
|
||||
*/
|
||||
class Accessor extends Callable, Modifiable, Attributable, @callable_accessor {
|
||||
class Accessor extends Callable, Modifiable, Attributable, Overridable, @callable_accessor {
|
||||
override ValueOrRefType getDeclaringType() { result = this.getDeclaration().getDeclaringType() }
|
||||
|
||||
/** Gets the assembly name of this accessor. */
|
||||
@@ -376,6 +376,10 @@ class Accessor extends Callable, Modifiable, Attributable, @callable_accessor {
|
||||
not (result instanceof AccessModifier and exists(this.getAnAccessModifier()))
|
||||
}
|
||||
|
||||
override predicate isOverridableOrImplementable() {
|
||||
this.getDeclaration().isOverridableOrImplementable()
|
||||
}
|
||||
|
||||
override Accessor getUnboundDeclaration() { accessors(this, _, _, _, result) }
|
||||
|
||||
override Location getALocation() { accessor_location(this, result) }
|
||||
|
||||
@@ -75,7 +75,7 @@ class BlockStmt extends Stmt, @block_stmt {
|
||||
|
||||
/** Holds if this block is the container of the global statements. */
|
||||
predicate isGlobalStatementContainer() {
|
||||
this.getEnclosingCallable().hasQualifiedName("<Program>$.<Main>$")
|
||||
this.getEnclosingCallable().hasQualifiedName("Program.<Main>$")
|
||||
}
|
||||
|
||||
override Stmt stripSingletonBlocks() {
|
||||
|
||||
@@ -8,7 +8,7 @@ class MainMethod extends Method {
|
||||
(
|
||||
this.hasName("Main")
|
||||
or
|
||||
this.hasQualifiedName("<Program>$", "<Main>$")
|
||||
this.hasQualifiedName("Program.<Main>$")
|
||||
) and
|
||||
this.isStatic() and
|
||||
(this.getReturnType() instanceof VoidType or this.getReturnType() instanceof IntType) and
|
||||
|
||||
@@ -1086,7 +1086,7 @@ module Internal {
|
||||
*/
|
||||
private Callable customNullCheck(Parameter p, BooleanValue retVal, boolean isNull) {
|
||||
result.getReturnType() instanceof BoolType and
|
||||
not result.(Virtualizable).isOverridableOrImplementable() and
|
||||
not result.(Overridable).isOverridableOrImplementable() and
|
||||
p.getCallable() = result and
|
||||
not p.isParams() and
|
||||
p.getType() = any(Type t | t instanceof RefType or t instanceof NullableType) and
|
||||
|
||||
@@ -78,7 +78,6 @@ private import internal.DataFlowPublic
|
||||
private import internal.FlowSummaryImpl::Public
|
||||
private import internal.FlowSummaryImpl::Private::External
|
||||
private import internal.FlowSummaryImplSpecific
|
||||
private import semmle.code.csharp.dispatch.OverridableCallable
|
||||
|
||||
/**
|
||||
* A module importing the frameworks that provide external flow data,
|
||||
@@ -92,6 +91,17 @@ private module Frameworks {
|
||||
private import semmle.code.csharp.frameworks.ServiceStack
|
||||
private import semmle.code.csharp.frameworks.Sql
|
||||
private import semmle.code.csharp.frameworks.EntityFramework
|
||||
private import semmle.code.csharp.frameworks.system.Text
|
||||
private import semmle.code.csharp.frameworks.system.Net
|
||||
private import semmle.code.csharp.frameworks.system.Web
|
||||
private import semmle.code.csharp.frameworks.system.collections.Generic
|
||||
private import semmle.code.csharp.frameworks.system.web.ui.WebControls
|
||||
private import semmle.code.csharp.frameworks.JsonNET
|
||||
private import semmle.code.csharp.frameworks.system.IO
|
||||
private import semmle.code.csharp.frameworks.system.io.Compression
|
||||
private import semmle.code.csharp.frameworks.system.Xml
|
||||
private import semmle.code.csharp.frameworks.system.threading.Tasks
|
||||
private import semmle.code.csharp.frameworks.system.runtime.CompilerServices
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,7 +272,7 @@ module CsvValidation {
|
||||
not name.regexpMatch("[a-zA-Z0-9_<>,]*") and
|
||||
msg = "Dubious member name \"" + name + "\" in " + pred + " model."
|
||||
or
|
||||
not signature.regexpMatch("|\\([a-zA-Z0-9_<>\\.\\+,\\[\\]]*\\)") and
|
||||
not signature.regexpMatch("|\\([a-zA-Z0-9_<>\\.\\+\\*,\\[\\]]*\\)") and
|
||||
msg = "Dubious signature \"" + signature + "\" in " + pred + " model."
|
||||
or
|
||||
not ext.regexpMatch("|Attribute") and
|
||||
@@ -348,16 +358,17 @@ private class UnboundValueOrRefType extends ValueOrRefType {
|
||||
}
|
||||
}
|
||||
|
||||
private class UnboundCallable extends Callable {
|
||||
/** An unbound callable. */
|
||||
class UnboundCallable extends Callable {
|
||||
UnboundCallable() { this.isUnboundDeclaration() }
|
||||
|
||||
/**
|
||||
* Holds if this unbound callable overrides or implements (transitively)
|
||||
* `that` unbound callable.
|
||||
*/
|
||||
predicate overridesOrImplementsUnbound(UnboundCallable that) {
|
||||
exists(Callable c |
|
||||
this.(Virtualizable).overridesOrImplementsOrEquals(c) or
|
||||
this = c.(OverridableCallable).getAnUltimateImplementor() or
|
||||
this = c.(OverridableCallable).getAnOverrider+()
|
||||
|
|
||||
this != c and
|
||||
this.(Overridable).overridesOrImplements(c) and
|
||||
that = c.getUnboundDeclaration()
|
||||
)
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,24 +8,11 @@ import csharp
|
||||
/**
|
||||
* A callable that can be overridden or implemented.
|
||||
*
|
||||
* Unlike the class `Virtualizable`, this class only includes methods that
|
||||
* can actually be overriden/implemented. Additionally, this class includes
|
||||
* accessors whose declarations can actually be overridden/implemented.
|
||||
* Unlike the class `Overridable`, this class only includes callables that
|
||||
* can actually be overriden/implemented.
|
||||
*/
|
||||
class OverridableCallable extends Callable {
|
||||
OverridableCallable() {
|
||||
this.(Method).isOverridableOrImplementable() or
|
||||
this.(Accessor).getDeclaration().isOverridableOrImplementable()
|
||||
}
|
||||
|
||||
/** Gets a callable that immediately overrides this callable, if any. */
|
||||
Callable getAnOverrider() { none() }
|
||||
|
||||
/**
|
||||
* Gets a callable that immediately implements this interface callable,
|
||||
* if any.
|
||||
*/
|
||||
Callable getAnImplementor(ValueOrRefType t) { none() }
|
||||
class OverridableCallable extends Callable, Overridable {
|
||||
OverridableCallable() { this.isOverridableOrImplementable() }
|
||||
|
||||
/**
|
||||
* Gets a callable that immediately implements this interface member,
|
||||
@@ -68,40 +55,6 @@ class OverridableCallable extends Callable {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a callable that (transitively) implements this interface callable,
|
||||
* if any. That is, either this interface callable is immediately implemented
|
||||
* by the result, or the result overrides (transitively) another callable that
|
||||
* immediately implements this interface callable.
|
||||
*
|
||||
* Note that this is generally *not* equivalent with
|
||||
*
|
||||
* ```ql
|
||||
* result = getAnImplementor()
|
||||
* or
|
||||
* result = getAnImplementor().(OverridableCallable).getAnOverrider+()`
|
||||
* ```
|
||||
*
|
||||
* as the example below illustrates:
|
||||
*
|
||||
* ```csharp
|
||||
* interface I { void M(); }
|
||||
*
|
||||
* class A { public virtual void M() { } }
|
||||
*
|
||||
* class B : A, I { }
|
||||
*
|
||||
* class C : A { public override void M() }
|
||||
*
|
||||
* class D : B { public override void M() }
|
||||
* ```
|
||||
*
|
||||
* If this callable is `I.M` then `A.M = getAnUltimateImplementor() ` and
|
||||
* `D.M = getAnUltimateImplementor()`. However, it is *not* the case that
|
||||
* `C.M = getAnUltimateImplementor()`, because `C` is not a sub type of `I`.
|
||||
*/
|
||||
Callable getAnUltimateImplementor() { none() }
|
||||
|
||||
/**
|
||||
* Gets a callable that overrides (transitively) another callable that
|
||||
* implements this interface callable, if any.
|
||||
@@ -210,73 +163,10 @@ class OverridableCallable extends Callable {
|
||||
}
|
||||
|
||||
/** An overridable method. */
|
||||
class OverridableMethod extends Method, OverridableCallable {
|
||||
override Method getAnOverrider() { result = Method.super.getAnOverrider() }
|
||||
|
||||
override Method getAnImplementor(ValueOrRefType t) { result = Method.super.getAnImplementor(t) }
|
||||
|
||||
override Method getAnUltimateImplementor() { result = Method.super.getAnUltimateImplementor() }
|
||||
|
||||
override Method getInherited(ValueOrRefType t) {
|
||||
result = OverridableCallable.super.getInherited(t)
|
||||
}
|
||||
|
||||
override Method getAnOverrider(ValueOrRefType t) {
|
||||
result = OverridableCallable.super.getAnOverrider(t)
|
||||
}
|
||||
}
|
||||
deprecated class OverridableMethod extends Method, OverridableCallable { }
|
||||
|
||||
/** An overridable accessor. */
|
||||
class OverridableAccessor extends Accessor, OverridableCallable {
|
||||
override Accessor getAnOverrider() { overrides(result, this) }
|
||||
|
||||
override Accessor getAnImplementor(ValueOrRefType t) {
|
||||
exists(Virtualizable implementor, int kind |
|
||||
this.getAnImplementorAux(t, implementor, kind) and
|
||||
result.getDeclaration() = implementor and
|
||||
getAccessorKind(result) = kind
|
||||
)
|
||||
}
|
||||
|
||||
// predicate folding to get proper join order
|
||||
private predicate getAnImplementorAux(ValueOrRefType t, Virtualizable implementor, int kind) {
|
||||
exists(Virtualizable implementee |
|
||||
implementee = this.getDeclaration() and
|
||||
kind = getAccessorKind(this) and
|
||||
implementor = implementee.getAnImplementor(t)
|
||||
)
|
||||
}
|
||||
|
||||
override Accessor getAnUltimateImplementor() {
|
||||
exists(Virtualizable implementor, int kind |
|
||||
this.getAnUltimateImplementorAux(implementor, kind) and
|
||||
result.getDeclaration() = implementor and
|
||||
getAccessorKind(result) = kind
|
||||
)
|
||||
}
|
||||
|
||||
// predicate folding to get proper join order
|
||||
private predicate getAnUltimateImplementorAux(Virtualizable implementor, int kind) {
|
||||
exists(Virtualizable implementee |
|
||||
implementee = this.getDeclaration() and
|
||||
kind = getAccessorKind(this) and
|
||||
implementor = implementee.getAnUltimateImplementor()
|
||||
)
|
||||
}
|
||||
|
||||
override Accessor getInherited(ValueOrRefType t) {
|
||||
result = OverridableCallable.super.getInherited(t)
|
||||
}
|
||||
|
||||
override Accessor getAnOverrider(ValueOrRefType t) {
|
||||
result = OverridableCallable.super.getAnOverrider(t)
|
||||
}
|
||||
}
|
||||
|
||||
private int getAccessorKind(Accessor a) {
|
||||
accessors(a, result, _, _, _) or
|
||||
event_accessors(a, -result, _, _, _)
|
||||
}
|
||||
deprecated class OverridableAccessor extends Accessor, OverridableCallable { }
|
||||
|
||||
/** An unbound type. */
|
||||
class UnboundDeclarationType extends Type {
|
||||
|
||||
@@ -996,7 +996,7 @@ class QualifiableExpr extends Expr, @qualifiable_expr {
|
||||
*/
|
||||
predicate targetIsOverridableOrImplementable() {
|
||||
not this.getQualifier() instanceof BaseAccess and
|
||||
this.getQualifiedDeclaration().(Virtualizable).isOverridableOrImplementable()
|
||||
this.getQualifiedDeclaration().(Overridable).isOverridableOrImplementable()
|
||||
}
|
||||
|
||||
/** Holds if this expression has a conditional qualifier `?.` */
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.dataflow.LibraryTypeDataFlow
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** Definitions relating to the `Json.NET` package. */
|
||||
module JsonNET {
|
||||
@@ -31,15 +31,9 @@ module JsonNET {
|
||||
}
|
||||
|
||||
/** The class `Newtonsoft.Json.JsonConvert`. */
|
||||
class JsonConvertClass extends JsonClass, LibraryTypeDataFlow {
|
||||
class JsonConvertClass extends JsonClass {
|
||||
JsonConvertClass() { this.hasName("JsonConvert") }
|
||||
|
||||
/** Gets a `ToString` method. */
|
||||
private Method getAToStringMethod() {
|
||||
result = this.getAMethod("ToString") and
|
||||
result.isStatic()
|
||||
}
|
||||
|
||||
/** Gets a `Deserialize` method. */
|
||||
Method getADeserializeMethod() {
|
||||
result = this.getAMethod() and
|
||||
@@ -51,39 +45,73 @@ module JsonNET {
|
||||
result = this.getAMethod() and
|
||||
result.getName().matches("Serialize%")
|
||||
}
|
||||
}
|
||||
|
||||
private Method getAPopulateMethod() {
|
||||
result = this.getAMethod() and
|
||||
result.getName().matches("Populate%")
|
||||
}
|
||||
|
||||
override predicate callableFlow(
|
||||
CallableFlowSource source, CallableFlowSink sink, SourceDeclarationCallable c,
|
||||
boolean preservesValue
|
||||
) {
|
||||
// ToString methods
|
||||
c = this.getAToStringMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink instanceof CallableFlowSinkReturn
|
||||
or
|
||||
// Deserialize methods
|
||||
c = this.getADeserializeMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink instanceof CallableFlowSinkReturn
|
||||
or
|
||||
// Serialize methods
|
||||
c = this.getASerializeMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink instanceof CallableFlowSinkReturn
|
||||
or
|
||||
// Populate methods
|
||||
c = this.getAPopulateMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink = any(CallableFlowSinkArg arg | arg.getArgumentIndex() = 1)
|
||||
/** Data flow for `Newtonsoft.Json.JsonConvert`. */
|
||||
private class JsonConvertClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String,System.Type);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String,System.Type,Newtonsoft.Json.JsonConverter[]);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String,System.Type,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject<>;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject<>;(System.String,Newtonsoft.Json.JsonConverter[]);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeObject<>;(System.String,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXNode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXNode;(System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXNode;(System.String,System.String,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXNode;(System.String,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXmlNode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXmlNode;(System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXmlNode;(System.String,System.String,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;DeserializeXmlNode;(System.String,System.String,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;PopulateObject;(System.String,System.Object);;Argument[0];Argument[1];taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;PopulateObject;(System.String,System.Object,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];Argument[1];taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,Newtonsoft.Json.Formatting);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,Newtonsoft.Json.JsonConverter[]);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,System.Type,Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeObject;(System.Object,System.Type,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXNode;(System.Xml.Linq.XObject);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXNode;(System.Xml.Linq.XObject,Newtonsoft.Json.Formatting);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXNode;(System.Xml.Linq.XObject,Newtonsoft.Json.Formatting,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXmlNode;(System.Xml.XmlNode);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXmlNode;(System.Xml.XmlNode,Newtonsoft.Json.Formatting);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;SerializeXmlNode;(System.Xml.XmlNode,Newtonsoft.Json.Formatting,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.DateTime,Newtonsoft.Json.DateFormatHandling,Newtonsoft.Json.DateTimeZoneHandling);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.DateTimeOffset);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.DateTimeOffset,Newtonsoft.Json.DateFormatHandling);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Enum);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Guid);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.String,System.Char);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.String,System.Char,Newtonsoft.Json.StringEscapeHandling);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.TimeSpan);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonConvert;false;ToString;(System.Uri);;Argument[0];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +165,7 @@ module JsonNET {
|
||||
}
|
||||
|
||||
/** The class `NewtonSoft.Json.JsonSerializer`. */
|
||||
class JsonSerializerClass extends JsonClass, LibraryTypeDataFlow {
|
||||
class JsonSerializerClass extends JsonClass {
|
||||
JsonSerializerClass() { this.hasName("JsonSerializer") }
|
||||
|
||||
/** Gets the method for `JsonSerializer.Serialize`. */
|
||||
@@ -145,22 +173,21 @@ module JsonNET {
|
||||
|
||||
/** Gets the method for `JsonSerializer.Deserialize`. */
|
||||
Method getDeserializeMethod() { result = this.getAMethod("Deserialize") }
|
||||
}
|
||||
|
||||
override predicate callableFlow(
|
||||
CallableFlowSource source, CallableFlowSink sink, SourceDeclarationCallable c,
|
||||
boolean preservesValue
|
||||
) {
|
||||
// Serialize
|
||||
c = this.getSerializeMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 1) and
|
||||
sink = any(CallableFlowSinkArg arg | arg.getArgumentIndex() = 0)
|
||||
or
|
||||
// Deserialize
|
||||
c = this.getDeserializeMethod() and
|
||||
preservesValue = false and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink instanceof CallableFlowSinkReturn
|
||||
/** Data flow for `NewtonSoft.Json.JSonSerializer`. */
|
||||
private class JsonSerializerClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Deserialize;(Newtonsoft.Json.JsonReader,System.Type);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Deserialize;(System.IO.TextReader,System.Type);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Serialize;(Newtonsoft.Json.JsonWriter,System.Object);;Argument[1];Argument[0];taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Serialize;(Newtonsoft.Json.JsonWriter,System.Object,System.Type);;Argument[1];Argument[0];taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object);;Argument[1];Argument[0];taint",
|
||||
"Newtonsoft.Json;JsonSerializer;false;Serialize;(System.IO.TextWriter,System.Object,System.Type);;Argument[1];Argument[0];taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,41 +223,23 @@ module JsonNET {
|
||||
LinqClass() { this.getDeclaringNamespace() instanceof LinqNamespace }
|
||||
}
|
||||
|
||||
/** The `NewtonSoft.Json.Linq.JObject` class. */
|
||||
class JObjectClass extends LinqClass, LibraryTypeDataFlow {
|
||||
JObjectClass() { this.hasName("JObject") }
|
||||
|
||||
override predicate callableFlow(
|
||||
CallableFlowSource source, CallableFlowSink sink, SourceDeclarationCallable c,
|
||||
boolean preservesValue
|
||||
) {
|
||||
// ToString method
|
||||
c = this.getAMethod("ToString") and
|
||||
source instanceof CallableFlowSourceQualifier and
|
||||
sink instanceof CallableFlowSinkReturn and
|
||||
preservesValue = false
|
||||
or
|
||||
// Parse method
|
||||
c = this.getParseMethod() and
|
||||
source = any(CallableFlowSourceArg arg | arg.getArgumentIndex() = 0) and
|
||||
sink instanceof CallableFlowSinkReturn and
|
||||
preservesValue = false
|
||||
or
|
||||
// operator string
|
||||
c =
|
||||
any(Operator op |
|
||||
op.getDeclaringType() = this.getABaseType*() and op.getReturnType() instanceof StringType
|
||||
) and
|
||||
source.(CallableFlowSourceArg).getArgumentIndex() = 0 and
|
||||
sink instanceof CallableFlowSinkReturn and
|
||||
preservesValue = false
|
||||
or
|
||||
// SelectToken method
|
||||
c = this.getSelectTokenMethod() and
|
||||
source instanceof CallableFlowSourceQualifier and
|
||||
sink instanceof CallableFlowSinkReturn and
|
||||
preservesValue = false
|
||||
/** Data flow for `Newtonsoft.Json.Linq.JToken`. */
|
||||
private class JTokenClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String);;Argument[-1];ReturnValue;taint",
|
||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,Newtonsoft.Json.Linq.JsonSelectSettings);;Argument[-1];ReturnValue;taint",
|
||||
"Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[-1];ReturnValue;taint",
|
||||
"Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[-1];ReturnValue;taint",
|
||||
"Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `NewtonSoft.Json.Linq.JObject` class. */
|
||||
class JObjectClass extends LinqClass {
|
||||
JObjectClass() { this.hasName("JObject") }
|
||||
|
||||
/** Gets the `Parse` method. */
|
||||
Method getParseMethod() { result = this.getAMethod("Parse") }
|
||||
@@ -238,4 +247,15 @@ module JsonNET {
|
||||
/** Gets the `SelectToken` method. */
|
||||
Method getSelectTokenMethod() { result = this.getABaseType*().getAMethod("SelectToken") }
|
||||
}
|
||||
|
||||
/** Data flow for `NewtonSoft.Json.Linq.JObject`. */
|
||||
private class JObjectClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"Newtonsoft.Json.Linq;JObject;false;Parse;(System.String,Newtonsoft.Json.Linq.JsonLoadSettings);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +111,342 @@ class SystemConvertClass extends SystemClass {
|
||||
SystemConvertClass() { this.hasName("Convert") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Convert`. */
|
||||
private class SystemConvertFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;Convert;false;ChangeType;(System.Object,System.Type);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ChangeType;(System.Object,System.Type,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ChangeType;(System.Object,System.TypeCode);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ChangeType;(System.Object,System.TypeCode,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;FromBase64CharArray;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];Element of ReturnValue;taint",
|
||||
"System;Convert;false;FromBase64String;(System.String);;Argument[0];Element of ReturnValue;taint",
|
||||
"System;Convert;false;FromHexString;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];Element of ReturnValue;taint",
|
||||
"System;Convert;false;FromHexString;(System.String);;Argument[0];Element of ReturnValue;taint",
|
||||
"System;Convert;false;GetTypeCode;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;IsDBNull;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Element of Argument[3];taint",
|
||||
"System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];Element of Argument[3];taint",
|
||||
"System;Convert;false;ToBase64String;(System.Byte[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64String;(System.Byte[],System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBase64String;(System.ReadOnlySpan<System.Byte>,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToBoolean;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToByte;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToChar;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDateTime;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDecimal;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToDouble;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToHexString;(System.Byte[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToHexString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToHexString;(System.ReadOnlySpan<System.Byte>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt16;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt32;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToInt64;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSByte;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToSingle;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Boolean,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Byte,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Byte,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Char,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.DateTime,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Decimal,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Double,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int16,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int16,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int32,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int32,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int64,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Int64,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.SByte,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.Single,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt16,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt32,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToString;(System.UInt64,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt16;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt32;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Byte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Char);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.DateTime);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Decimal);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Double);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Int16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Int64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Object,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.SByte);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.Single);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.String,System.IFormatProvider);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.String,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.UInt16);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.UInt32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;ToUInt64;(System.UInt64);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];Element of Argument[1];taint",
|
||||
"System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];Argument[2];taint",
|
||||
"System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];Element of Argument[1];taint",
|
||||
"System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];Argument[2];taint",
|
||||
"System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Element of Argument[1];taint",
|
||||
"System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Argument[2];taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** `System.Delegate` class. */
|
||||
class SystemDelegateClass extends SystemClass {
|
||||
SystemDelegateClass() { this.hasName("Delegate") }
|
||||
@@ -257,6 +593,19 @@ class SystemLazyClass extends SystemUnboundGenericClass {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Lazy<>`. */
|
||||
private class SystemLazyFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;Lazy<>;false;Lazy;(System.Func<T>);;ReturnValue of Argument[0];Property[System.Lazy<>.Value] of ReturnValue;value",
|
||||
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Boolean);;ReturnValue of Argument[0];Property[System.Lazy<>.Value] of ReturnValue;value",
|
||||
"System;Lazy<>;false;Lazy;(System.Func<T>,System.Threading.LazyThreadSafetyMode);;ReturnValue of Argument[0];Property[System.Lazy<>.Value] of ReturnValue;value",
|
||||
"System;Lazy<>;false;get_Value;();;Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Nullable<T>` struct. */
|
||||
class SystemNullableStruct extends SystemUnboundGenericStruct {
|
||||
SystemNullableStruct() {
|
||||
@@ -286,6 +635,21 @@ class SystemNullableStruct extends SystemUnboundGenericStruct {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Nullable<>`. */
|
||||
private class SystemNullableFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;Nullable<>;false;GetValueOrDefault;();;Property[System.Nullable<>.Value] of Argument[-1];ReturnValue;value",
|
||||
"System;Nullable<>;false;GetValueOrDefault;(T);;Argument[0];ReturnValue;value",
|
||||
"System;Nullable<>;false;GetValueOrDefault;(T);;Property[System.Nullable<>.Value] of Argument[-1];ReturnValue;value",
|
||||
"System;Nullable<>;false;Nullable;(T);;Argument[0];Property[System.Nullable<>.Value] of ReturnValue;value",
|
||||
"System;Nullable<>;false;get_HasValue;();;Property[System.Nullable<>.Value] of Argument[-1];ReturnValue;taint",
|
||||
"System;Nullable<>;false;get_Value;();;Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.NullReferenceException` class. */
|
||||
class SystemNullReferenceExceptionClass extends SystemClass {
|
||||
SystemNullReferenceExceptionClass() { this.hasName("NullReferenceException") }
|
||||
@@ -492,6 +856,132 @@ class SystemStringClass extends StringType {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.String`. */
|
||||
private class SystemStringFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;String;false;Clone;();;Argument[-1];ReturnValue;value",
|
||||
"System;String;false;Concat;(System.Collections.Generic.IEnumerable<System.String>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object,System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object,System.Object,System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object,System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object,System.Object,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.Object[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[3];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String,System.String);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String,System.String,System.String,System.String);;Argument[3];ReturnValue;taint",
|
||||
"System;String;false;Concat;(System.String[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Concat<>;(System.Collections.Generic.IEnumerable<T>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Copy;(System.String);;Argument[0];ReturnValue;value",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[3];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[3];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[4];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object[]);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.IFormatProvider,System.String,System.Object[]);;Element of Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[2];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object,System.Object,System.Object);;Argument[3];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object[]);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Format;(System.String,System.Object[]);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;GetEnumerator;();;Element of Argument[-1];Property[System.CharEnumerator.Current] of ReturnValue;value",
|
||||
"System;String;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.Generic.IEnumerator<>.Current] of ReturnValue;value",
|
||||
"System;String;false;Insert;(System.Int32,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Insert;(System.Int32,System.String);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.Object[]);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.Object[]);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.String[]);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.String[]);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.String[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.Char,System.String[],System.Int32,System.Int32);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.Collections.Generic.IEnumerable<System.String>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.Object[]);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.Object[]);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.String[]);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.String[]);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.String[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join;(System.String,System.String[],System.Int32,System.Int32);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Join<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Element of Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Normalize;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Normalize;(System.Text.NormalizationForm);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;PadLeft;(System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;PadLeft;(System.Int32,System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;PadRight;(System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;PadRight;(System.Int32,System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Remove;(System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Remove;(System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Replace;(System.Char,System.Char);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Replace;(System.Char,System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Replace;(System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System;String;false;Replace;(System.String,System.String);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char,System.Int32,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char[]);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char[],System.Int32);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char[],System.Int32,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.Char[],System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.String,System.Int32,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.String,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.String[],System.Int32,System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;Split;(System.String[],System.StringSplitOptions);;Argument[-1];Element of ReturnValue;taint",
|
||||
"System;String;false;String;(System.Char[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;String;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System;String;false;Substring;(System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Substring;(System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToLower;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToLower;(System.Globalization.CultureInfo);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToLowerInvariant;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToString;();;Argument[-1];ReturnValue;value",
|
||||
"System;String;false;ToString;(System.IFormatProvider);;Argument[-1];ReturnValue;value",
|
||||
"System;String;false;ToUpper;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToUpper;(System.Globalization.CultureInfo);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;ToUpperInvariant;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Trim;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Trim;(System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;Trim;(System.Char[]);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimEnd;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimEnd;(System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimEnd;(System.Char[]);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimStart;();;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimStart;(System.Char);;Argument[-1];ReturnValue;taint",
|
||||
"System;String;false;TrimStart;(System.Char[]);;Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A `ToString()` method. */
|
||||
class ToStringMethod extends Method {
|
||||
ToStringMethod() { this = any(SystemObjectClass c).getToStringMethod().getAnOverrider*() }
|
||||
@@ -798,3 +1288,384 @@ class SystemNotImplementedExceptionClass extends SystemClass {
|
||||
class SystemDateTimeStruct extends SystemStruct {
|
||||
SystemDateTimeStruct() { this.hasName("DateTime") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Tuple`. */
|
||||
private class SystemTupleFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[0];Property[System.Tuple<,,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[1];Property[System.Tuple<,,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[2];Property[System.Tuple<,,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[3];Property[System.Tuple<,,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[4];Property[System.Tuple<,,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[5];Property[System.Tuple<,,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[6];Property[System.Tuple<,,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Property[System.Tuple<,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Property[System.Tuple<,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Property[System.Tuple<,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Property[System.Tuple<,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Property[System.Tuple<,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Property[System.Tuple<,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Property[System.Tuple<,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[0];Property[System.Tuple<,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[1];Property[System.Tuple<,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[2];Property[System.Tuple<,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[3];Property[System.Tuple<,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[4];Property[System.Tuple<,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[5];Property[System.Tuple<,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[0];Property[System.Tuple<,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[1];Property[System.Tuple<,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[2];Property[System.Tuple<,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[3];Property[System.Tuple<,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[4];Property[System.Tuple<,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[0];Property[System.Tuple<,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[1];Property[System.Tuple<,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[2];Property[System.Tuple<,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[3];Property[System.Tuple<,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,>;(T1,T2,T3);;Argument[0];Property[System.Tuple<,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,>;(T1,T2,T3);;Argument[1];Property[System.Tuple<,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,,>;(T1,T2,T3);;Argument[2];Property[System.Tuple<,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,>;(T1,T2);;Argument[0];Property[System.Tuple<,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<,>;(T1,T2);;Argument[1];Property[System.Tuple<,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple;false;Create<>;(T1);;Argument[0];Property[System.Tuple<>.Item1] of ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Tuple<,*>`. */
|
||||
private class SystemTupleTFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Property[System.Tuple<,,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Property[System.Tuple<,,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Property[System.Tuple<,,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Property[System.Tuple<,,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Property[System.Tuple<,,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Property[System.Tuple<,,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Property[System.Tuple<,,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Property[System.Tuple<,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Property[System.Tuple<,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Property[System.Tuple<,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Property[System.Tuple<,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Property[System.Tuple<,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Property[System.Tuple<,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Property[System.Tuple<,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,,>.Item7] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Property[System.Tuple<,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Property[System.Tuple<,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Property[System.Tuple<,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Property[System.Tuple<,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Property[System.Tuple<,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;Tuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Property[System.Tuple<,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[0];Property[System.Tuple<,,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[1];Property[System.Tuple<,,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[2];Property[System.Tuple<,,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[3];Property[System.Tuple<,,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;Tuple;(T1,T2,T3,T4,T5);;Argument[4];Property[System.Tuple<,,,,>.Item5] of ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[0];Property[System.Tuple<,,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[1];Property[System.Tuple<,,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[2];Property[System.Tuple<,,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;Tuple;(T1,T2,T3,T4);;Argument[3];Property[System.Tuple<,,,>.Item4] of ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[0];Property[System.Tuple<,,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[1];Property[System.Tuple<,,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,,>;false;Tuple;(T1,T2,T3);;Argument[2];Property[System.Tuple<,,>.Item3] of ReturnValue;value",
|
||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,,>;false;get_Item;(System.Int32);;Property[System.Tuple<,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[0];Property[System.Tuple<,>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<,>;false;Tuple;(T1,T2);;Argument[1];Property[System.Tuple<,>.Item2] of ReturnValue;value",
|
||||
"System;Tuple<,>;false;get_Item;(System.Int32);;Property[System.Tuple<,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<,>;false;get_Item;(System.Int32);;Property[System.Tuple<,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;Tuple<>;false;Tuple;(T1);;Argument[0];Property[System.Tuple<>.Item1] of ReturnValue;value",
|
||||
"System;Tuple<>;false;get_Item;(System.Int32);;Property[System.Tuple<>.Item1] of Argument[-1];ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.TupleExtensions`. */
|
||||
private class SystemTupleExtensionsFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20,T21>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19,T20>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18,T19>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17,T18>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16,T17>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15,T16>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14,System.Tuple<T15>>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13,T14>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12,T13>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11,T12>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10,T11>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9,T10>>,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8,T9>>,T1,T2,T3,T4,T5,T6,T7,T8,T9);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7,System.Tuple<T8>>,T1,T2,T3,T4,T5,T6,T7,T8);;Property[System.Tuple<,,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6,T7>,T1,T2,T3,T4,T5,T6,T7);;Property[System.Tuple<,,,,,,>.Item7] of Argument[0];Argument[7];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,,>;(System.Tuple<T1,T2,T3,T4,T5,T6>,T1,T2,T3,T4,T5,T6);;Property[System.Tuple<,,,,,>.Item6] of Argument[0];Argument[6];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,>;(System.Tuple<T1,T2,T3,T4,T5>,T1,T2,T3,T4,T5);;Property[System.Tuple<,,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,>;(System.Tuple<T1,T2,T3,T4,T5>,T1,T2,T3,T4,T5);;Property[System.Tuple<,,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,>;(System.Tuple<T1,T2,T3,T4,T5>,T1,T2,T3,T4,T5);;Property[System.Tuple<,,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,>;(System.Tuple<T1,T2,T3,T4,T5>,T1,T2,T3,T4,T5);;Property[System.Tuple<,,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,,>;(System.Tuple<T1,T2,T3,T4,T5>,T1,T2,T3,T4,T5);;Property[System.Tuple<,,,,>.Item5] of Argument[0];Argument[5];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,>;(System.Tuple<T1,T2,T3,T4>,T1,T2,T3,T4);;Property[System.Tuple<,,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,>;(System.Tuple<T1,T2,T3,T4>,T1,T2,T3,T4);;Property[System.Tuple<,,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,>;(System.Tuple<T1,T2,T3,T4>,T1,T2,T3,T4);;Property[System.Tuple<,,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,,>;(System.Tuple<T1,T2,T3,T4>,T1,T2,T3,T4);;Property[System.Tuple<,,,>.Item4] of Argument[0];Argument[4];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,>;(System.Tuple<T1,T2,T3>,T1,T2,T3);;Property[System.Tuple<,,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,>;(System.Tuple<T1,T2,T3>,T1,T2,T3);;Property[System.Tuple<,,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,,>;(System.Tuple<T1,T2,T3>,T1,T2,T3);;Property[System.Tuple<,,>.Item3] of Argument[0];Argument[3];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,>;(System.Tuple<T1,T2>,T1,T2);;Property[System.Tuple<,>.Item1] of Argument[0];Argument[1];value",
|
||||
"System;TupleExtensions;false;Deconstruct<,>;(System.Tuple<T1,T2>,T1,T2);;Property[System.Tuple<,>.Item2] of Argument[0];Argument[2];value",
|
||||
"System;TupleExtensions;false;Deconstruct<>;(System.Tuple<T1>,T1);;Property[System.Tuple<>.Item1] of Argument[0];Argument[1];value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.ValueTuple`. */
|
||||
private class SystemValueTupleFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[0];Field[System.ValueTuple<,,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[1];Field[System.ValueTuple<,,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[2];Field[System.ValueTuple<,,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[3];Field[System.ValueTuple<,,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[4];Field[System.ValueTuple<,,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[5];Field[System.ValueTuple<,,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,,>;(T1,T2,T3,T4,T5,T6,T7,T8);;Argument[6];Field[System.ValueTuple<,,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Field[System.ValueTuple<,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Field[System.ValueTuple<,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Field[System.ValueTuple<,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Field[System.ValueTuple<,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Field[System.ValueTuple<,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Field[System.ValueTuple<,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,,>;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Field[System.ValueTuple<,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[0];Field[System.ValueTuple<,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[1];Field[System.ValueTuple<,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[2];Field[System.ValueTuple<,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[3];Field[System.ValueTuple<,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[4];Field[System.ValueTuple<,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,,>;(T1,T2,T3,T4,T5,T6);;Argument[5];Field[System.ValueTuple<,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[0];Field[System.ValueTuple<,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[1];Field[System.ValueTuple<,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[2];Field[System.ValueTuple<,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[3];Field[System.ValueTuple<,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,,>;(T1,T2,T3,T4,T5);;Argument[4];Field[System.ValueTuple<,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[0];Field[System.ValueTuple<,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[1];Field[System.ValueTuple<,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[2];Field[System.ValueTuple<,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,,>;(T1,T2,T3,T4);;Argument[3];Field[System.ValueTuple<,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,>;(T1,T2,T3);;Argument[0];Field[System.ValueTuple<,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,>;(T1,T2,T3);;Argument[1];Field[System.ValueTuple<,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,,>;(T1,T2,T3);;Argument[2];Field[System.ValueTuple<,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,>;(T1,T2);;Argument[0];Field[System.ValueTuple<,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<,>;(T1,T2);;Argument[1];Field[System.ValueTuple<,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple;false;Create<>;(T1);;Argument[0];Field[System.ValueTuple<>.Item1] of ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for System.ValueTuple<,*>. */
|
||||
private class SystemValueTupleTFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[0];Field[System.ValueTuple<,,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[1];Field[System.ValueTuple<,,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[2];Field[System.ValueTuple<,,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[3];Field[System.ValueTuple<,,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[4];Field[System.ValueTuple<,,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[5];Field[System.ValueTuple<,,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7,TRest);;Argument[6];Field[System.ValueTuple<,,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,,>.Item7] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[0];Field[System.ValueTuple<,,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[1];Field[System.ValueTuple<,,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[2];Field[System.ValueTuple<,,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[3];Field[System.ValueTuple<,,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[4];Field[System.ValueTuple<,,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[5];Field[System.ValueTuple<,,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6,T7);;Argument[6];Field[System.ValueTuple<,,,,,,>.Item7] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,,>.Item7] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[0];Field[System.ValueTuple<,,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[1];Field[System.ValueTuple<,,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[2];Field[System.ValueTuple<,,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[3];Field[System.ValueTuple<,,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[4];Field[System.ValueTuple<,,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5,T6);;Argument[5];Field[System.ValueTuple<,,,,,>.Item6] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,,>.Item6] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[0];Field[System.ValueTuple<,,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[1];Field[System.ValueTuple<,,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[2];Field[System.ValueTuple<,,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[3];Field[System.ValueTuple<,,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;ValueTuple;(T1,T2,T3,T4,T5);;Argument[4];Field[System.ValueTuple<,,,,>.Item5] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,,>.Item5] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[0];Field[System.ValueTuple<,,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[1];Field[System.ValueTuple<,,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[2];Field[System.ValueTuple<,,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;ValueTuple;(T1,T2,T3,T4);;Argument[3];Field[System.ValueTuple<,,,>.Item4] of ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,,>.Item4] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[0];Field[System.ValueTuple<,,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[1];Field[System.ValueTuple<,,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;ValueTuple;(T1,T2,T3);;Argument[2];Field[System.ValueTuple<,,>.Item3] of ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,,>.Item3] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[0];Field[System.ValueTuple<,>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<,>;false;ValueTuple;(T1,T2);;Argument[1];Field[System.ValueTuple<,>.Item2] of ReturnValue;value",
|
||||
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,>.Item1] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<,>;false;get_Item;(System.Int32);;Field[System.ValueTuple<,>.Item2] of Argument[-1];ReturnValue;value",
|
||||
"System;ValueTuple<>;false;ValueTuple;(T1);;Argument[0];Field[System.ValueTuple<>.Item1] of ReturnValue;value",
|
||||
"System;ValueTuple<>;false;get_Item;(System.Int32);;Field[System.ValueTuple<>.Item1] of Argument[-1];ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.IO` namespace. */
|
||||
class SystemIONamespace extends Namespace {
|
||||
@@ -41,11 +42,72 @@ class SystemIOPathClass extends SystemIOClass {
|
||||
SystemIOPathClass() { this.hasName("Path") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.IO.Path`. */
|
||||
private class SystemIOPathFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.IO;Path;false;Combine;(System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String);;Argument[2];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[1];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[2];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[3];ReturnValue;taint",
|
||||
"System.IO;Path;false;Combine;(System.String[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetDirectoryName;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetDirectoryName;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetExtension;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetExtension;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFileName;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFileName;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFileNameWithoutExtension;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFileNameWithoutExtension;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFullPath;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetFullPath;(System.String,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetPathRoot;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetPathRoot;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;Path;false;GetRelativePath;(System.String,System.String);;Argument[1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.IO.TextReader`. */
|
||||
private class SystemIOTextReaderFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.IO;TextReader;true;Read;();;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;Read;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadBlock;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadLine;();;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadLineAsync;();;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadToEnd;();;Argument[-1];ReturnValue;taint",
|
||||
"System.IO;TextReader;true;ReadToEndAsync;();;Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.IO.StringReader` class. */
|
||||
class SystemIOStringReaderClass extends SystemIOClass {
|
||||
SystemIOStringReaderClass() { this.hasName("StringReader") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.IO.StringReader` */
|
||||
private class SystemIOStringReaderFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint"
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.IO.Stream` class. */
|
||||
class SystemIOStreamClass extends SystemIOClass {
|
||||
SystemIOStreamClass() { this.hasName("Stream") }
|
||||
@@ -82,6 +144,29 @@ class SystemIOStreamClass extends SystemIOClass {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.IO.Stream`. */
|
||||
private class SystemIOStreamFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint",
|
||||
"System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint",
|
||||
"System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint",
|
||||
"System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint",
|
||||
"System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint",
|
||||
"System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint",
|
||||
"System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint",
|
||||
"System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint",
|
||||
"System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.IO.MemoryStream` class. */
|
||||
class SystemIOMemoryStreamClass extends SystemIOClass {
|
||||
SystemIOMemoryStreamClass() { this.hasName("MemoryStream") }
|
||||
@@ -92,3 +177,17 @@ class SystemIOMemoryStreamClass extends SystemIOClass {
|
||||
result.hasName("ToArray")
|
||||
}
|
||||
}
|
||||
|
||||
private class SystemIOMemoryStreamFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint",
|
||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.IO;MemoryStream;false;ToArray;();;Argument[-1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Net` namespace. */
|
||||
class SystemNetNamespace extends Namespace {
|
||||
@@ -27,6 +28,18 @@ class SystemNetWebUtility extends SystemNetClass {
|
||||
Method getAnUrlEncodeMethod() { result = this.getAMethod("UrlEncode") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Net.WebUtility`. */
|
||||
private class SystemNetWebUtilityFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Net;WebUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Net;WebUtility;false;HtmlEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint",
|
||||
"System.Net;WebUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Net.HttpListenerResponse` class. */
|
||||
class SystemNetHttpListenerResponseClass extends SystemNetClass {
|
||||
SystemNetHttpListenerResponseClass() { this.hasName("HttpListenerResponse") }
|
||||
@@ -59,6 +72,17 @@ class SystemNetIPHostEntryClass extends SystemNetClass {
|
||||
Property getAliasesProperty() { result = this.getProperty("Aliases") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Net.IPHostEntry`. */
|
||||
private class SystemNetIPHostEntryClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Net;IPHostEntry;false;get_Aliases;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Net;IPHostEntry;false;get_HostName;();;Argument[-1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Net.Cookie` class. */
|
||||
class SystemNetCookieClass extends SystemNetClass {
|
||||
SystemNetCookieClass() { this.hasName("Cookie") }
|
||||
@@ -66,3 +90,10 @@ class SystemNetCookieClass extends SystemNetClass {
|
||||
/** Gets the `Value` property. */
|
||||
Property getValueProperty() { result = this.getProperty("Value") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Net.Cookie`. */
|
||||
private class SystemNetCookieClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "System.Net;Cookie;false;get_Value;();;Argument[-1];ReturnValue;taint"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Text` namespace. */
|
||||
class SystemTextNamespace extends Namespace {
|
||||
@@ -24,6 +25,97 @@ class SystemTextStringBuilderClass extends SystemTextClass {
|
||||
Method getAppendFormatMethod() { result = this.getAMethod("AppendFormat") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Text.StringBuilder`. */
|
||||
private class SystemTextStringBuilderFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Byte);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char*,System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char,System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char[]);;Element of Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Decimal);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Double);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Int16);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Int64);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.ReadOnlyMemory<System.Char>);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.ReadOnlySpan<System.Char>);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.SByte);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Single);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.String);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;Append;(System.String);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;Append;(System.String,System.Int32,System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.Text.StringBuilder,System.Int32,System.Int32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.UInt16);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.UInt32);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;Append;(System.UInt64);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[3];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[3];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[4];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object,System.Object,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.IFormatProvider,System.String,System.Object[]);;Element of Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[2];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[3];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object,System.Object,System.Object);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendFormat;(System.String,System.Object[]);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.Object[]);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.Char,System.String[]);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.Object[]);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin;(System.String,System.String[]);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.Char,System.Collections.Generic.IEnumerable<T>);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendJoin<>;(System.String,System.Collections.Generic.IEnumerable<T>);;Element of Argument[1];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendLine;();;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[0];Element of Argument[-1];value",
|
||||
"System.Text;StringBuilder;false;AppendLine;(System.String);;Argument[-1];ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;StringBuilder;(System.String);;Argument[0];Element of ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32);;Argument[0];Element of ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Element of ReturnValue;value",
|
||||
"System.Text;StringBuilder;false;ToString;();;Element of Argument[-1];ReturnValue;taint",
|
||||
"System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Element of Argument[-1];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Text.Encoding` class. */
|
||||
class SystemTextEncodingClass extends SystemTextClass {
|
||||
SystemTextEncodingClass() { this.hasName("Encoding") }
|
||||
@@ -37,3 +129,29 @@ class SystemTextEncodingClass extends SystemTextClass {
|
||||
/** Gets the `GetChars` method. */
|
||||
Method getGetCharsMethod() { result = this.getAMethod("GetChars") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Text.Encoding`. */
|
||||
private class SystemTextEncodingFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Text;Encoding;false;GetBytes;(System.String,System.Int32,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;false;GetString;(System.Byte*,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;false;GetString;(System.ReadOnlySpan<System.Byte>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.Char[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>);;Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetChars;(System.Byte[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetChars;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetChars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetString;(System.Byte[]);;Element of Argument[0];ReturnValue;taint",
|
||||
"System.Text;Encoding;true;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.frameworks.system.collections.Specialized
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Web` namespace. */
|
||||
class SystemWebNamespace extends Namespace {
|
||||
@@ -174,6 +175,17 @@ class SystemWebHttpServerUtility extends SystemWebClass {
|
||||
Method getAnUrlEncodeMethod() { result = this.getAMethod("UrlEncode") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Web.HttpServerUtility`. */
|
||||
private class SystemWebHttpServerUtilityFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Web;HttpServerUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpServerUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Web.HttpUtility` class. */
|
||||
class SystemWebHttpUtility extends SystemWebClass {
|
||||
SystemWebHttpUtility() { this.hasName("HttpUtility") }
|
||||
@@ -191,6 +203,26 @@ class SystemWebHttpUtility extends SystemWebClass {
|
||||
Method getAnUrlEncodeMethod() { result = this.getAMethod("UrlEncode") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Web.HttpUtility`. */
|
||||
private class SystemWebHttpUtilityFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Web;HttpUtility;false;HtmlAttributeEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;HtmlAttributeEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;HtmlEncode;(System.Object);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;HtmlEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;JavaScriptStringEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;JavaScriptStringEncode;(System.String,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;UrlEncode;(System.Byte[]);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;UrlEncode;(System.Byte[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Web;HttpUtility;false;UrlEncode;(System.String,System.Text.Encoding);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Web.HttpCookie` class. */
|
||||
class SystemWebHttpCookie extends SystemWebClass {
|
||||
SystemWebHttpCookie() { this.hasName("HttpCookie") }
|
||||
@@ -205,6 +237,17 @@ class SystemWebHttpCookie extends SystemWebClass {
|
||||
Property getSecureProperty() { result = this.getProperty("Secure") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Web.HttpCookie`. */
|
||||
private class SystemWebHttpCookieFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Web;HttpCookie;false;get_Value;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Web;HttpCookie;false;get_Values;();;Argument[-1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Web.IHtmlString` class. */
|
||||
class SystemWebIHtmlString extends SystemWebInterface {
|
||||
SystemWebIHtmlString() { this.hasName("IHtmlString") }
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.System
|
||||
private import semmle.code.csharp.dataflow.DataFlow3
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Xml` namespace. */
|
||||
class SystemXmlNamespace extends Namespace {
|
||||
@@ -35,8 +36,20 @@ class SystemXmlXmlDocumentClass extends Class {
|
||||
/** Gets the `Load` method. */
|
||||
Method getLoadMethod() {
|
||||
result = this.getAMethod() and
|
||||
result.hasName("Load") and
|
||||
result.isStatic()
|
||||
result.hasName("Load")
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Xml.XmlDocument`. */
|
||||
private class SystemXmlXmlDocumentFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Xml;XmlDocument;false;Load;(System.IO.Stream);;Argument[0];Argument[-1];taint",
|
||||
"System.Xml;XmlDocument;false;Load;(System.IO.TextReader);;Argument[0];Argument[-1];taint",
|
||||
"System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[-1];taint",
|
||||
"System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[-1];taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +68,27 @@ class SystemXmlXmlReaderClass extends Class {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Xml.XmlReader`. */
|
||||
private class SystemXmlXmlReaderFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.Stream);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.TextReader);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings,System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.IO.TextReader,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.String);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint",
|
||||
"System.Xml;XmlReader;false;Create;(System.Xml.XmlReader,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Xml.XmlReaderSettings` class. */
|
||||
class SystemXmlXmlReaderSettingsClass extends Class {
|
||||
SystemXmlXmlReaderSettingsClass() {
|
||||
@@ -101,6 +135,42 @@ class SystemXmlXmlNodeClass extends Class {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Xml.XmlNode`. */
|
||||
private class SystemXmlXmlNodeFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Xml;XmlNode;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value",
|
||||
"System.Xml;XmlNode;false;SelectNodes;(System.String);;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;false;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;false;SelectSingleNode;(System.String);;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;false;SelectSingleNode;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_Attributes;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_BaseURI;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_ChildNodes;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_FirstChild;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_HasChildNodes;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_InnerText;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_InnerXml;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_IsReadOnly;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_LastChild;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_LocalName;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_Name;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_NamespaceURI;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_NextSibling;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_NodeType;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_OuterXml;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_OwnerDocument;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_ParentNode;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_Prefix;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_PreviousSibling;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_PreviousText;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_SchemaInfo;();;Argument[-1];ReturnValue;taint",
|
||||
"System.Xml;XmlNode;true;get_Value;();;Argument[-1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Xml.XmlNamedNodeMap` class. */
|
||||
class SystemXmlXmlNamedNodeMapClass extends Class {
|
||||
SystemXmlXmlNamedNodeMapClass() {
|
||||
@@ -115,6 +185,17 @@ class SystemXmlXmlNamedNodeMapClass extends Class {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Xml.XmlNamedNodeMap`. */
|
||||
private class SystemXmlXmlNamedNodeMapClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String);;Argument[-1];ReturnValue;value",
|
||||
"System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String,System.String);;Argument[-1];ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** An enum constant in `System.Xml.ValidationType`. */
|
||||
class SystemXmlValidationType extends EnumConstant {
|
||||
SystemXmlValidationType() {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.system.Collections
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Collections.Generic` namespace. */
|
||||
class SystemCollectionsGenericNamespace extends Namespace {
|
||||
@@ -123,6 +124,17 @@ class SystemCollectionsGenericKeyValuePairStruct extends SystemCollectionsGeneri
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Collections.Generic.KeyValuePair`. */
|
||||
private class SystemCollectionsGenericKeyValuePairStructFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of ReturnValue;value",
|
||||
"System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Property[System.Collections.Generic.KeyValuePair<,>.Value] of ReturnValue;value"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Collections.Generic.ICollection<>` interface. */
|
||||
class SystemCollectionsGenericICollectionInterface extends SystemCollectionsGenericUnboundGenericInterface {
|
||||
SystemCollectionsGenericICollectionInterface() { this.hasName("ICollection<>") }
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.system.IO
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.IO.Compression` namespace. */
|
||||
class SystemIOCompressionNamespace extends Namespace {
|
||||
@@ -20,3 +21,16 @@ class SystemIOCompressionClass extends Class {
|
||||
class SystemIOCompressionDeflateStream extends SystemIOCompressionClass {
|
||||
SystemIOCompressionDeflateStream() { this.hasName("DeflateStream") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.IO.Compression.DeflateStream`. */
|
||||
private class SystemIOCompressionDeflateStreamFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint",
|
||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];ReturnValue;taint",
|
||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint",
|
||||
"System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.system.Runtime
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Runtime.CompilerServices` namespace. */
|
||||
class SystemRuntimeCompilerServicesNamespace extends Namespace {
|
||||
@@ -29,6 +30,13 @@ class SystemRuntimeCompilerServicesTaskAwaiterStruct extends SystemRuntimeCompil
|
||||
Field getUnderlyingTaskField() { result = this.getAField() and result.hasName("m_task") }
|
||||
}
|
||||
|
||||
private class SystemRuntimeCompilerServicesTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
"System.Runtime.CompilerServices;TaskAwaiter<>;false;GetResult;();;Property[System.Threading.Tasks.Task<>.Result] of SyntheticField[m_task_task_awaiter] of Argument[-1];ReturnValue;value"
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>` struct. */
|
||||
class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTStruct extends SystemRuntimeCompilerServicesNamespaceUnboundGenericStruct {
|
||||
SystemRuntimeCompilerServicesConfiguredTaskAwaitableTStruct() {
|
||||
@@ -44,6 +52,14 @@ class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTStruct extends System
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>`. */
|
||||
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>;false;GetAwaiter;();;SyntheticField[m_configuredTaskAwaiter] of Argument[-1];ReturnValue;value"
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>.ConfiguredTaskAwaiter` struct. */
|
||||
class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiterStruct extends Struct {
|
||||
SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiterStruct() {
|
||||
@@ -57,3 +73,11 @@ class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiter
|
||||
/** Gets the field that stores the underlying task. */
|
||||
Field getUnderlyingTaskField() { result = this.getAField() and result.hasName("m_task") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Runtime.CompilerServices.ConfiguredTaskAwaitable<>.ConfiguredTaskAwaiter`. */
|
||||
private class SystemRuntimeCompilerServicesConfiguredTaskAwaitableTConfiguredTaskAwaiterFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
"System.Runtime.CompilerServices;ConfiguredTaskAwaitable<>+ConfiguredTaskAwaiter;false;GetResult;();;Property[System.Threading.Tasks.Task<>.Result] of SyntheticField[m_task_configured_task_awaitable] of Argument[-1];ReturnValue;value"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.system.Threading
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Threading.Tasks` namespace. */
|
||||
class SystemThreadingTasksNamespace extends Namespace {
|
||||
@@ -28,6 +29,50 @@ class SystemThreadingTasksTaskClass extends SystemThreadingTasksClass {
|
||||
SystemThreadingTasksTaskClass() { this.hasName("Task") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Threading.Tasks.Task`. */
|
||||
private class SystemThreadingTasksTaskFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,System.Object,TResult>,System.Object,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,TResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;FromResult<>;(TResult);;Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;Run<>;(System.Func<System.Threading.Tasks.Task<TResult>>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;Run<>;(System.Func<System.Threading.Tasks.Task<TResult>>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;Run<>;(System.Func<TResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;Run<>;(System.Func<TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;Task;(System.Action<System.Object>,System.Object);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;Task;(System.Action<System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;Task;(System.Action<System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;Task;(System.Action<System.Object>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task;false;WhenAll<>;(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>>);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[0];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;WhenAll<>;(System.Threading.Tasks.Task<TResult>[]);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[0];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;WhenAny<>;(System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task<TResult>>);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[0];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;WhenAny<>;(System.Threading.Tasks.Task<TResult>,System.Threading.Tasks.Task<TResult>);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[0];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;WhenAny<>;(System.Threading.Tasks.Task<TResult>,System.Threading.Tasks.Task<TResult>);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[1];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task;false;WhenAny<>;(System.Threading.Tasks.Task<TResult>[]);;Property[System.Threading.Tasks.Task<>.Result] of Element of Argument[0];Element of Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Threading.Tasks.Task<T>` class. */
|
||||
class SystemThreadingTasksTaskTClass extends SystemThreadingTasksUnboundGenericClass {
|
||||
SystemThreadingTasksTaskTClass() { this.hasName("Task<>") }
|
||||
@@ -45,3 +90,169 @@ class SystemThreadingTasksTaskTClass extends SystemThreadingTasksUnboundGenericC
|
||||
/** Gets the `ConfigureAwait` method. */
|
||||
Method getConfigureAwaitMethod() { result = this.getAMethod("ConfigureAwait") }
|
||||
}
|
||||
|
||||
/** Data flow for `System.Threading.Tasks.Task<>`. */
|
||||
private class SystemThreadingTasksTaskTFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Threading.Tasks;Task<>;false;ConfigureAwait;(System.Boolean);;Argument[-1];SyntheticField[m_task_configured_task_awaitable] of SyntheticField[m_configuredTaskAwaiter] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskContinuationOptions);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith;(System.Action<System.Threading.Tasks.Task<>>,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;Argument[-1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;ContinueWith<>;(System.Func<System.Threading.Tasks.Task<>,TNewResult>,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;GetAwaiter;();;Argument[-1];SyntheticField[m_task_task_awaiter] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;Task;(System.Func<TResult>,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;Task<>;false;get_Result;();;Argument[-1];ReturnValue;taint"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Threading.Tasks.TaskFactory`. */
|
||||
private class SystemThreadingTasksTaskFactoryFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>[]>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAll<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<,>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Action<System.Threading.Tasks.Task<TAntecedentResult>>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;ContinueWhenAny<>;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action<System.Object>,System.Object);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action<System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action<System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew;(System.Action<System.Object>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<TResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory;false;StartNew<>;(System.Func<TResult>,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Threading.Tasks.TaskFactory<TResult>`. */
|
||||
private class SystemThreadingTasksTaskFactoryTFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAll<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func<System.Threading.Tasks.Task,TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.Tasks.TaskContinuationOptions);;Argument[0];Parameter[0] of Argument[1];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;ContinueWhenAny<>;(System.Threading.Tasks.Task<TAntecedentResult>[],System.Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult>,System.Threading.Tasks.TaskContinuationOptions);;ReturnValue of Argument[1];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;Argument[1];Parameter[0] of Argument[0];value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<System.Object,TResult>,System.Object,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<TResult>);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<TResult>,System.Threading.CancellationToken);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
"System.Threading.Tasks;TaskFactory<>;false;StartNew;(System.Func<TResult>,System.Threading.Tasks.TaskCreationOptions);;ReturnValue of Argument[0];Property[System.Threading.Tasks.Task<>.Result] of ReturnValue;value",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import csharp
|
||||
private import semmle.code.csharp.frameworks.system.web.UI
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
/** The `System.Web.UI.WebControls` namespace. */
|
||||
class SystemWebUIWebControlsNamespace extends Namespace {
|
||||
@@ -28,6 +29,13 @@ class SystemWebUIWebControlsTextBoxClass extends SystemWebUIWebControlsClass {
|
||||
}
|
||||
}
|
||||
|
||||
/** Data flow for `System.Web.UI.WebControls.TextBox`. */
|
||||
private class SystebWebUIWebControlsTextBoxClassFlowModelCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[-1];ReturnValue;taint"
|
||||
}
|
||||
}
|
||||
|
||||
/** The `System.Web.UI.WebControls.Label` class. */
|
||||
class SystemWebUIWebControlsLabelClass extends SystemWebUIWebControlsClass {
|
||||
SystemWebUIWebControlsLabelClass() { this.hasName("Label") }
|
||||
|
||||
@@ -54,7 +54,7 @@ class ExternalAPIDataNode extends DataFlow::Node {
|
||||
// Defined outside the source archive
|
||||
not call.getTarget().fromSource() and
|
||||
// Not a call to a method which is overridden in source
|
||||
not exists(Virtualizable m |
|
||||
not exists(Overridable m |
|
||||
m.overridesOrImplementsOrEquals(call.getTarget().getUnboundDeclaration()) and
|
||||
m.fromSource()
|
||||
) and
|
||||
|
||||
1
csharp/ql/src/CHANGELOG.md
Normal file
1
csharp/ql/src/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
1
csharp/ql/src/change-notes/released/0.0.4.md
Normal file
1
csharp/ql/src/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
2
csharp/ql/src/codeql-pack.release.yml
Normal file
2
csharp/ql/src/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -155,4 +155,4 @@ int getFieldBitOffset(Field f) {
|
||||
/**
|
||||
* Holds if the specified `Function` can be overridden in a derived class.
|
||||
*/
|
||||
predicate isFunctionVirtual(Function f) { f.(CSharp::Virtualizable).isOverridableOrImplementable() }
|
||||
predicate isFunctionVirtual(Function f) { f.(CSharp::Overridable).isOverridableOrImplementable() }
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
name: codeql/csharp-queries
|
||||
version: 0.0.2
|
||||
version: 0.0.5-dev
|
||||
groups: csharp
|
||||
suites: codeql-suites
|
||||
extractor: csharp
|
||||
defaultSuiteFile: codeql-suites/csharp-code-scanning.qls
|
||||
|
||||
@@ -299,7 +299,7 @@ expressionTypes
|
||||
| NullableRefTypes.cs:93:21:93:28 | "source" | string! |
|
||||
| NullableRefTypes.cs:94:13:94:13 | access to local variable y | string? |
|
||||
| NullableRefTypes.cs:94:13:94:25 | String y = ... | string? |
|
||||
| NullableRefTypes.cs:94:17:94:17 | access to local variable x | string! |
|
||||
| NullableRefTypes.cs:94:17:94:17 | access to local variable x | string? |
|
||||
| NullableRefTypes.cs:94:17:94:25 | ... ?? ... | string? |
|
||||
| NullableRefTypes.cs:94:22:94:25 | null | null |
|
||||
| NullableRefTypes.cs:95:16:95:16 | access to local variable z | string! |
|
||||
|
||||
@@ -9,6 +9,7 @@ type
|
||||
| file://:0:0:0:0 | delegate* default<T,Int32> | int | DefaultCallingConvention |
|
||||
| file://:0:0:0:0 | delegate* default<Void*,Int32*> | int* | DefaultCallingConvention |
|
||||
| file://:0:0:0:0 | delegate* stdcall<Int32 ref,Object out,T,Void> | Void | StdCallCallingConvention |
|
||||
| file://:0:0:0:0 | delegate* unmanaged<Char*,IntPtr,Void> | Void | CallingConvention |
|
||||
unmanagedCallingConvention
|
||||
parameter
|
||||
| file://:0:0:0:0 | delegate* default<A,B> | 0 | file://:0:0:0:0 | | A |
|
||||
@@ -27,6 +28,8 @@ parameter
|
||||
| file://:0:0:0:0 | delegate* stdcall<Int32 ref,Object out,T,Void> | 0 | file://:0:0:0:0 | | ref int! |
|
||||
| file://:0:0:0:0 | delegate* stdcall<Int32 ref,Object out,T,Void> | 1 | file://:0:0:0:0 | `1 | out object? |
|
||||
| file://:0:0:0:0 | delegate* stdcall<Int32 ref,Object out,T,Void> | 2 | file://:0:0:0:0 | `2 | T |
|
||||
| file://:0:0:0:0 | delegate* unmanaged<Char*,IntPtr,Void> | 0 | file://:0:0:0:0 | | char*! |
|
||||
| file://:0:0:0:0 | delegate* unmanaged<Char*,IntPtr,Void> | 1 | file://:0:0:0:0 | `1 | IntPtr! |
|
||||
invocation
|
||||
| FunctionPointer.cs:17:21:17:43 | function pointer call |
|
||||
| FunctionPointer.cs:23:13:23:44 | function pointer call |
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
noBody
|
||||
| LocalFunction.cs:16:9:16:41 | localExtern |
|
||||
localFunctionModifier
|
||||
| GlobalStmt.cs:13:1:15:1 | M | private |
|
||||
| LambdaModifier.cs:8:9:8:36 | m | private |
|
||||
| LocalFunction.cs:9:9:12:9 | mul | async |
|
||||
| LocalFunction.cs:9:9:12:9 | mul | private |
|
||||
|
||||
@@ -404,39 +404,6 @@ FunctionPointer.cs:
|
||||
# 48| 14: [Class] B
|
||||
#-----| 3: (Base types)
|
||||
# 48| 0: [TypeMention] A
|
||||
GlobalStmt.cs:
|
||||
# 5| [Class] <Program>$
|
||||
# 5| 4: [Method] <Main>$
|
||||
#-----| 2: (Parameters)
|
||||
# 1| 0: [Parameter] args
|
||||
# 5| 4: [BlockStmt] {...}
|
||||
# 9| 0: [ExprStmt] ...;
|
||||
# 9| 0: [MethodCall] call to method WriteLine
|
||||
# 9| -1: [TypeAccess] access to type Console
|
||||
# 9| 0: [TypeMention] Console
|
||||
# 9| 0: [StringLiteral] "1"
|
||||
# 10| 1: [ExprStmt] ...;
|
||||
# 10| 0: [MethodCall] call to method WriteLine
|
||||
# 10| -1: [TypeAccess] access to type Console
|
||||
# 10| 0: [TypeMention] Console
|
||||
# 10| 0: [StringLiteral] "2"
|
||||
# 11| 2: [ExprStmt] ...;
|
||||
# 11| 0: [LocalFunctionCall] call to local function M
|
||||
# 11| -1: [LocalFunctionAccess] access to local function M
|
||||
# 13| 3: [LocalFunctionStmt] M(...)
|
||||
# 13| 0: [LocalFunction] M
|
||||
# 14| 4: [BlockStmt] {...}
|
||||
# 17| [Class] Attr
|
||||
#-----| 3: (Base types)
|
||||
# 17| 0: [TypeMention] Attribute
|
||||
# 19| 5: [Method] M1
|
||||
# 19| -1: [TypeMention] Void
|
||||
# 20| 4: [BlockStmt] {...}
|
||||
# 21| 0: [ExprStmt] ...;
|
||||
# 21| 0: [MethodCall] call to method WriteLine
|
||||
# 21| -1: [TypeAccess] access to type Console
|
||||
# 21| 0: [TypeMention] Console
|
||||
# 21| 0: [StringLiteral] "3"
|
||||
InitOnlyProperty.cs:
|
||||
# 3| [Class] Base
|
||||
# 5| 5: [Property] Prop0
|
||||
@@ -812,12 +779,12 @@ Record.cs:
|
||||
# 4| [Record] Person
|
||||
# 4| 11: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 4| 0: [Parameter] r1
|
||||
# 4| 1: [Parameter] r2
|
||||
# 4| 0: [Parameter] left
|
||||
# 4| 1: [Parameter] right
|
||||
# 4| 12: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 4| 0: [Parameter] r1
|
||||
# 4| 1: [Parameter] r2
|
||||
# 4| 0: [Parameter] left
|
||||
# 4| 1: [Parameter] right
|
||||
# 4| 13: [Property] EqualityContract
|
||||
# 4| 3: [Getter] get_EqualityContract
|
||||
# 6| 14: [Property] LastName
|
||||
@@ -842,12 +809,12 @@ Record.cs:
|
||||
# 12| [Record] Teacher
|
||||
# 12| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 12| 0: [Parameter] r1
|
||||
# 12| 1: [Parameter] r2
|
||||
# 12| 0: [Parameter] left
|
||||
# 12| 1: [Parameter] right
|
||||
# 12| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 12| 0: [Parameter] r1
|
||||
# 12| 1: [Parameter] r2
|
||||
# 12| 0: [Parameter] left
|
||||
# 12| 1: [Parameter] right
|
||||
# 12| 14: [Property] EqualityContract
|
||||
# 12| 3: [Getter] get_EqualityContract
|
||||
# 14| 15: [Property] Subject
|
||||
@@ -870,12 +837,12 @@ Record.cs:
|
||||
# 20| [Record] Student
|
||||
# 20| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 20| 0: [Parameter] r1
|
||||
# 20| 1: [Parameter] r2
|
||||
# 20| 0: [Parameter] left
|
||||
# 20| 1: [Parameter] right
|
||||
# 20| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 20| 0: [Parameter] r1
|
||||
# 20| 1: [Parameter] r2
|
||||
# 20| 0: [Parameter] left
|
||||
# 20| 1: [Parameter] right
|
||||
# 20| 14: [Property] EqualityContract
|
||||
# 20| 3: [Getter] get_EqualityContract
|
||||
# 22| 15: [Property] Level
|
||||
@@ -898,12 +865,12 @@ Record.cs:
|
||||
# 27| [Record] Person1
|
||||
# 27| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 27| 0: [Parameter] r1
|
||||
# 27| 1: [Parameter] r2
|
||||
# 27| 0: [Parameter] left
|
||||
# 27| 1: [Parameter] right
|
||||
# 27| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 27| 0: [Parameter] r1
|
||||
# 27| 1: [Parameter] r2
|
||||
# 27| 0: [Parameter] left
|
||||
# 27| 1: [Parameter] right
|
||||
# 27| 14: [Property] EqualityContract
|
||||
# 27| 3: [Getter] get_EqualityContract
|
||||
# 27| 15: [InstanceConstructor] Person1
|
||||
@@ -925,12 +892,12 @@ Record.cs:
|
||||
# 29| [Record] Teacher1
|
||||
# 29| 13: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 29| 0: [Parameter] r1
|
||||
# 29| 1: [Parameter] r2
|
||||
# 29| 0: [Parameter] left
|
||||
# 29| 1: [Parameter] right
|
||||
# 29| 14: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 29| 0: [Parameter] r1
|
||||
# 29| 1: [Parameter] r2
|
||||
# 29| 0: [Parameter] left
|
||||
# 29| 1: [Parameter] right
|
||||
# 29| 15: [Property] EqualityContract
|
||||
# 29| 3: [Getter] get_EqualityContract
|
||||
# 29| 16: [InstanceConstructor] Teacher1
|
||||
@@ -949,12 +916,12 @@ Record.cs:
|
||||
# 32| [Record] Student1
|
||||
# 32| 13: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 32| 0: [Parameter] r1
|
||||
# 32| 1: [Parameter] r2
|
||||
# 32| 0: [Parameter] left
|
||||
# 32| 1: [Parameter] right
|
||||
# 32| 14: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 32| 0: [Parameter] r1
|
||||
# 32| 1: [Parameter] r2
|
||||
# 32| 0: [Parameter] left
|
||||
# 32| 1: [Parameter] right
|
||||
# 32| 15: [Property] EqualityContract
|
||||
# 32| 3: [Getter] get_EqualityContract
|
||||
# 32| 16: [InstanceConstructor] Student1
|
||||
@@ -973,12 +940,12 @@ Record.cs:
|
||||
# 35| [Record] Pet
|
||||
# 35| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 35| 0: [Parameter] r1
|
||||
# 35| 1: [Parameter] r2
|
||||
# 35| 0: [Parameter] left
|
||||
# 35| 1: [Parameter] right
|
||||
# 35| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 35| 0: [Parameter] r1
|
||||
# 35| 1: [Parameter] r2
|
||||
# 35| 0: [Parameter] left
|
||||
# 35| 1: [Parameter] right
|
||||
# 35| 14: [Property] EqualityContract
|
||||
# 35| 3: [Getter] get_EqualityContract
|
||||
# 35| 15: [InstanceConstructor] Pet
|
||||
@@ -999,12 +966,12 @@ Record.cs:
|
||||
# 41| [Record] Dog
|
||||
# 41| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 41| 0: [Parameter] r1
|
||||
# 41| 1: [Parameter] r2
|
||||
# 41| 0: [Parameter] left
|
||||
# 41| 1: [Parameter] right
|
||||
# 41| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 41| 0: [Parameter] r1
|
||||
# 41| 1: [Parameter] r2
|
||||
# 41| 0: [Parameter] left
|
||||
# 41| 1: [Parameter] right
|
||||
# 41| 14: [InstanceConstructor] Dog
|
||||
#-----| 2: (Parameters)
|
||||
# 41| 0: [Parameter] Name
|
||||
@@ -1038,12 +1005,12 @@ Record.cs:
|
||||
# 54| [Record] R1
|
||||
# 54| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 54| 0: [Parameter] r1
|
||||
# 54| 1: [Parameter] r2
|
||||
# 54| 0: [Parameter] left
|
||||
# 54| 1: [Parameter] right
|
||||
# 54| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 54| 0: [Parameter] r1
|
||||
# 54| 1: [Parameter] r2
|
||||
# 54| 0: [Parameter] left
|
||||
# 54| 1: [Parameter] right
|
||||
# 54| 14: [Property] EqualityContract
|
||||
# 54| 3: [Getter] get_EqualityContract
|
||||
# 54| 15: [InstanceConstructor] R1
|
||||
@@ -1058,12 +1025,12 @@ Record.cs:
|
||||
# 56| [Record] R2
|
||||
# 56| 13: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 56| 0: [Parameter] r1
|
||||
# 56| 1: [Parameter] r2
|
||||
# 56| 0: [Parameter] left
|
||||
# 56| 1: [Parameter] right
|
||||
# 56| 14: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 56| 0: [Parameter] r1
|
||||
# 56| 1: [Parameter] r2
|
||||
# 56| 0: [Parameter] left
|
||||
# 56| 1: [Parameter] right
|
||||
# 56| 15: [Property] EqualityContract
|
||||
# 56| 3: [Getter] get_EqualityContract
|
||||
# 56| 16: [InstanceConstructor] R2
|
||||
|
||||
@@ -4,7 +4,7 @@ global_stmt
|
||||
| GlobalStmt.cs:11:1:11:4 | ...; |
|
||||
| GlobalStmt.cs:13:1:15:1 | M(...) |
|
||||
globalBlock
|
||||
| GlobalStmt.cs:5:1:24:0 | {...} | GlobalStmt.cs:5:1:24:0 | <Main>$ | GlobalStmt.cs:1:1:1:0 | args | GlobalStmt.cs:5:1:24:0 | <Program>$ |
|
||||
| GlobalStmt.cs:5:1:24:0 | {...} | GlobalStmt.cs:5:1:24:0 | <Main>$ | GlobalStmt.cs:1:1:1:0 | args | GlobalStmt.cs:5:1:24:0 | Program |
|
||||
methods
|
||||
| GlobalStmt.cs:5:1:24:0 | <Main>$ | entry |
|
||||
| GlobalStmt.cs:19:8:19:9 | M1 | non-entry |
|
||||
1
csharp/ql/test/library-tests/csharp9/global/options
Normal file
1
csharp/ql/test/library-tests/csharp9/global/options
Normal file
@@ -0,0 +1 @@
|
||||
semmle-extractor-options: --standalone
|
||||
@@ -1 +1 @@
|
||||
semmle-extractor-options: --standalone
|
||||
semmle-extractor-options: /r:System.Linq.dll
|
||||
|
||||
@@ -19,7 +19,7 @@ query predicate withTarget(WithExpr with, RecordCloneMethod clone, Constructor c
|
||||
query predicate cloneOverrides(string b, string o) {
|
||||
exists(RecordCloneMethod base, RecordCloneMethod overrider |
|
||||
base.getDeclaringType().fromSource() and
|
||||
base.(Virtualizable).getAnOverrider() = overrider and
|
||||
base.getAnOverrider() = overrider and
|
||||
b = getSignature(base) and
|
||||
o = getSignature(overrider)
|
||||
)
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
| Newtonsoft.Json.Linq;JContainer;false;get_Item;(System.Int32);;Element of Argument[-1];ReturnValue;value |
|
||||
| Newtonsoft.Json.Linq;JContainer;false;set_Item;(System.Int32,Newtonsoft.Json.Linq.JToken);;Argument[1];Element of Argument[-1];value |
|
||||
| Newtonsoft.Json.Linq;JContainer;false;set_Item;(System.Int32,System.Object);;Argument[1];Element of Argument[-1];value |
|
||||
| Newtonsoft.Json.Linq;JContainer;true;Add;(System.Object);;Argument[0];Element of Argument[-1];value |
|
||||
| Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Argument[0];Element of Argument[-1];value |
|
||||
| Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Property[System.Collections.Generic.KeyValuePair<,>.Key] of Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of Element of Argument[-1];value |
|
||||
| Newtonsoft.Json.Linq;JObject;false;Add;(System.Collections.Generic.KeyValuePair<System.String,Newtonsoft.Json.Linq.JToken>);;Property[System.Collections.Generic.KeyValuePair<,>.Value] of Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Value] of Element of Argument[-1];value |
|
||||
@@ -56,7 +57,8 @@
|
||||
| Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String);;Argument[-1];ReturnValue;taint |
|
||||
| Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,Newtonsoft.Json.Linq.JsonSelectSettings);;Argument[-1];ReturnValue;taint |
|
||||
| Newtonsoft.Json.Linq;JToken;false;SelectToken;(System.String,System.Boolean);;Argument[-1];ReturnValue;taint |
|
||||
| Newtonsoft.Json.Linq;JToken;false;explicit conversion;(Newtonsoft.Json.Linq.JToken);;Argument[0];ReturnValue;taint |
|
||||
| Newtonsoft.Json.Linq;JToken;false;ToString;();;Argument[-1];ReturnValue;taint |
|
||||
| Newtonsoft.Json.Linq;JToken;false;ToString;(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[]);;Argument[-1];ReturnValue;taint |
|
||||
| Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T);;Argument[0];ReturnValue;taint |
|
||||
| Newtonsoft.Json;JsonConvert;false;DeserializeAnonymousType<>;(System.String,T,Newtonsoft.Json.JsonSerializerSettings);;Argument[0];ReturnValue;taint |
|
||||
| Newtonsoft.Json;JsonConvert;false;DeserializeObject;(System.String);;Argument[0];ReturnValue;taint |
|
||||
@@ -225,8 +227,6 @@
|
||||
| System.Collections.Generic;IList<>;true;get_Item;(System.Int32);;Element of Argument[-1];ReturnValue;value |
|
||||
| System.Collections.Generic;IList<>;true;set_Item;(System.Int32,T);;Argument[1];Element of Argument[-1];value |
|
||||
| System.Collections.Generic;ISet<>;true;Add;(T);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;();;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of ReturnValue;value |
|
||||
| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;();;Argument[1];Property[System.Collections.Generic.KeyValuePair<,>.Value] of ReturnValue;value |
|
||||
| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of ReturnValue;value |
|
||||
| System.Collections.Generic;KeyValuePair<,>;false;KeyValuePair;(TKey,TValue);;Argument[1];Property[System.Collections.Generic.KeyValuePair<,>.Value] of ReturnValue;value |
|
||||
| System.Collections.Generic;LinkedList<>;false;Add;(T);;Argument[0];Element of Argument[-1];value |
|
||||
@@ -604,7 +604,7 @@
|
||||
| System.Collections.Specialized;NameObjectCollectionBase+KeysCollection;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Collections.Specialized;NameObjectCollectionBase+KeysCollection;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections.Specialized;NameObjectCollectionBase;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Collections.Specialized;NameObjectCollectionBase;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections.Specialized;NameObjectCollectionBase;true;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections.Specialized;NameValueCollection;false;Add;(System.Collections.Specialized.NameValueCollection);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Collections.Specialized;NameValueCollection;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Collections.Specialized;OrderedDictionary;false;Add;(System.Object,System.Object);;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of Element of Argument[-1];value |
|
||||
@@ -707,7 +707,7 @@
|
||||
| System.Collections;Queue;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections;Queue;false;Peek;();;Element of Argument[-1];ReturnValue;value |
|
||||
| System.Collections;ReadOnlyCollectionBase;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Collections;ReadOnlyCollectionBase;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections;ReadOnlyCollectionBase;true;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Collections;SortedList;false;Add;(System.Object,System.Object);;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of Element of Argument[-1];value |
|
||||
| System.Collections;SortedList;false;Add;(System.Object,System.Object);;Argument[1];Property[System.Collections.Generic.KeyValuePair<,>.Value] of Element of Argument[-1];value |
|
||||
| System.Collections;SortedList;false;Clone;();;Element of Argument[0];Element of ReturnValue;value |
|
||||
@@ -864,8 +864,8 @@
|
||||
| System.Data;DataColumnCollection;false;AddRange;(System.Data.DataColumn[]);;Element of Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataColumnCollection;false;CopyTo;(System.Data.DataColumn[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Data;DataRelationCollection;false;Add;(System.Data.DataRelation);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataRelationCollection;false;AddRange;(System.Data.DataRelation[]);;Element of Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataRelationCollection;false;CopyTo;(System.Data.DataRelation[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Data;DataRelationCollection;true;AddRange;(System.Data.DataRelation[]);;Element of Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataRowCollection;false;Add;(System.Data.DataRow);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataRowCollection;false;Add;(System.Object[]);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Data;DataRowCollection;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
@@ -991,75 +991,75 @@
|
||||
| System.Dynamic;ExpandoObject;false;get_Values;();;Property[System.Collections.Generic.KeyValuePair<,>.Value] of Element of Argument[-1];Element of ReturnValue;value |
|
||||
| System.Dynamic;ExpandoObject;false;set_Item;(System.String,System.Object);;Argument[0];Property[System.Collections.Generic.KeyValuePair<,>.Key] of Element of Argument[-1];value |
|
||||
| System.Dynamic;ExpandoObject;false;set_Item;(System.String,System.Object);;Argument[1];Property[System.Collections.Generic.KeyValuePair<,>.Value] of Element of Argument[-1];value |
|
||||
| System.IO.Compression;BrotliStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;BrotliStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;BrotliStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;BrotliStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;BrotliStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;BrotliStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;BrotliStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);;Argument[0];ReturnValue;taint |
|
||||
| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel,System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode);;Argument[0];ReturnValue;taint |
|
||||
| System.IO.Compression;DeflateStream;false;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System.IO.Compression;DeflateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;DeflateStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;DeflateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Compression;GZipStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Compression;GZipStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Enumeration;FileSystemEnumerable<>;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.Generic.IEnumerator<>.Current] of ReturnValue;value |
|
||||
| System.IO.Enumeration;FileSystemEnumerable<>;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.IsolatedStorage;IsolatedStorageFileStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO.Pipes;PipeStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO.Pipes;PipeStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;FileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;BufferedStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;BufferedStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;FileStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;FileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;FileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;FileStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;FileStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;FileStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;FileStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[]);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Boolean);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;MemoryStream;false;ToArray;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;MemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;MemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;Path;false;Combine;(System.String,System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;Combine;(System.String,System.String);;Argument[1];ReturnValue;taint |
|
||||
| System.IO;Path;false;Combine;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint |
|
||||
@@ -1070,33 +1070,46 @@
|
||||
| System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[2];ReturnValue;taint |
|
||||
| System.IO;Path;false;Combine;(System.String,System.String,System.String,System.String);;Argument[3];ReturnValue;taint |
|
||||
| System.IO;Path;false;Combine;(System.String[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetDirectoryName;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetDirectoryName;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetDirectoryName;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetExtension;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetExtension;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetExtension;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileName;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileName;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileName;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileNameWithoutExtension;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileNameWithoutExtension;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFileNameWithoutExtension;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFullPath;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetFullPath;(System.String,System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetPathRoot;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetPathRoot;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetPathRoot;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;Path;false;GetRelativePath;(System.String,System.String);;Argument[1];ReturnValue;taint |
|
||||
| System.IO;Stream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;false;CopyTo;(System.IO.Stream);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;CopyToAsync;(System.IO.Stream);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;CopyToAsync;(System.IO.Stream,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;Stream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;true;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;Stream;true;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;true;CopyTo;(System.IO.Stream,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;true;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;Stream;true;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;Stream;true;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;Stream;true;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;Stream;true;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;StreamReader;false;Read;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;Read;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;Read;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadBlock;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadLine;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadLineAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadToEnd;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StreamReader;false;ReadToEndAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StringReader;false;Read;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StringReader;false;Read;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StringReader;false;Read;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
@@ -1110,23 +1123,23 @@
|
||||
| System.IO;StringReader;false;ReadToEnd;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StringReader;false;ReadToEndAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;StringReader;false;StringReader;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;Read;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;Read;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;Read;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadBlock;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadLine;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadLineAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadToEnd;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;false;ReadToEndAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.IO;TextReader;true;Read;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;Read;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;Read;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadBlock;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadBlock;(System.Span<System.Char>);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadBlockAsync;(System.Char[],System.Int32,System.Int32);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadBlockAsync;(System.Memory<System.Char>,System.Threading.CancellationToken);;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadLine;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadLineAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadToEnd;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;TextReader;true;ReadToEndAsync;();;Argument[-1];ReturnValue;taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.IO;UnmanagedMemoryStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Argument[1];Parameter[0] of Argument[2];value |
|
||||
| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;Element of Argument[0];Parameter[1] of Argument[2];value |
|
||||
| System.Linq;Enumerable;false;Aggregate<,,>;(System.Collections.Generic.IEnumerable<TSource>,TAccumulate,System.Func<TAccumulate,TSource,TAccumulate>,System.Func<TAccumulate,TResult>);;ReturnValue of Argument[2];Parameter[0] of Argument[3];value |
|
||||
@@ -1809,24 +1822,24 @@
|
||||
| System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;CopyTo;(System.Net.NetworkInformation.UnicastIPAddressInformation[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.Generic.IEnumerator<>.Current] of ReturnValue;value |
|
||||
| System.Net.NetworkInformation;UnicastIPAddressInformationCollection;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Net.Security;NegotiateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;NegotiateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;NegotiateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;NegotiateStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;NegotiateStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;NegotiateStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;NegotiateStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Security;SslStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Security;SslStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net.Sockets;NetworkStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Net;Cookie;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Net;CookieCollection;false;Add;(System.Net.Cookie);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Net;CookieCollection;false;Add;(System.Net.CookieCollection);;Argument[0];Element of Argument[-1];value |
|
||||
@@ -1897,12 +1910,12 @@
|
||||
| System.Security.Cryptography;AsnEncodedDataCollection;false;CopyTo;(System.Security.Cryptography.AsnEncodedData[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Security.Cryptography;AsnEncodedDataCollection;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Security.Cryptography;AsnEncodedDataCollection;false;GetEnumerator;();;Element of Argument[-1];Property[System.Security.Cryptography.AsnEncodedDataEnumerator.Current] of ReturnValue;value |
|
||||
| System.Security.Cryptography;CryptoStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;Read;(System.Byte[],System.Int32,System.Int32);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Argument[-1];Element of Argument[0];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;Write;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;CryptoStream;false;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);;Element of Argument[0];Argument[-1];taint |
|
||||
| System.Security.Cryptography;OidCollection;false;Add;(System.Security.Cryptography.Oid);;Argument[0];Element of Argument[-1];value |
|
||||
| System.Security.Cryptography;OidCollection;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Security.Cryptography;OidCollection;false;CopyTo;(System.Security.Cryptography.Oid[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
@@ -1944,23 +1957,31 @@
|
||||
| System.Text.RegularExpressions;MatchCollection;false;get_Item;(System.Int32);;Element of Argument[-1];ReturnValue;value |
|
||||
| System.Text.RegularExpressions;MatchCollection;false;set_Item;(System.Int32,System.Object);;Argument[1];Element of Argument[-1];value |
|
||||
| System.Text.RegularExpressions;MatchCollection;false;set_Item;(System.Int32,System.Text.RegularExpressions.Match);;Argument[1];Element of Argument[-1];value |
|
||||
| System.Text;Encoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.Char[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetBytes;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetChars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;ASCIIEncoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.String,System.Int32,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetChars;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetChars;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetChars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetString;(System.Byte*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetString;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;false;GetString;(System.ReadOnlySpan<System.Byte>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.Char[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetChars;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetChars;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetChars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetString;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;Encoding;true;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;StringBuilder;false;Append;(System.Boolean);;Argument[-1];ReturnValue;value |
|
||||
| System.Text;StringBuilder;false;Append;(System.Byte);;Argument[-1];ReturnValue;value |
|
||||
| System.Text;StringBuilder;false;Append;(System.Char);;Argument[-1];ReturnValue;value |
|
||||
@@ -2043,6 +2064,32 @@
|
||||
| System.Text;StringBuilder;false;StringBuilder;(System.String,System.Int32,System.Int32,System.Int32);;Argument[0];Element of ReturnValue;value |
|
||||
| System.Text;StringBuilder;false;ToString;();;Element of Argument[-1];ReturnValue;taint |
|
||||
| System.Text;StringBuilder;false;ToString;(System.Int32,System.Int32);;Element of Argument[-1];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF7Encoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetBytes;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetChars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF8Encoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UTF32Encoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetBytes;(System.Char*,System.Int32,System.Byte*,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetBytes;(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetBytes;(System.String,System.Int32,System.Int32,System.Byte[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetChars;(System.Byte*,System.Int32,System.Char*,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetChars;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Text;UnicodeEncoding;false;GetString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object);;Argument[1];Parameter[1] of Argument[0];value |
|
||||
| System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.CancellationToken);;Argument[1];Parameter[1] of Argument[0];value |
|
||||
| System.Threading.Tasks;Task;false;ContinueWith;(System.Action<System.Threading.Tasks.Task,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);;Argument[1];Parameter[1] of Argument[0];value |
|
||||
@@ -2220,6 +2267,7 @@
|
||||
| System.Web.UI.WebControls;TextBox;false;get_Text;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Web;HttpCookie;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Web;HttpCookie;false;get_Values;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Web;HttpServerUtility;false;HtmlEncode;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.Web;HttpServerUtility;false;UrlEncode;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.Web;HttpUtility;false;HtmlAttributeEncode;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System.Web;HttpUtility;false;HtmlAttributeEncode;(System.String,System.IO.TextWriter);;Argument[0];ReturnValue;taint |
|
||||
@@ -2268,9 +2316,85 @@
|
||||
| System.Xml.Serialization;XmlSchemas;false;get_Item;(System.Int32);;Element of Argument[-1];ReturnValue;value |
|
||||
| System.Xml.Serialization;XmlSchemas;false;get_Item;(System.String);;Element of Argument[-1];ReturnValue;value |
|
||||
| System.Xml.Serialization;XmlSchemas;false;set_Item;(System.Int32,System.Xml.Schema.XmlSchema);;Argument[1];Element of Argument[-1];value |
|
||||
| System.Xml.XPath;XPathNodeIterator;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Xml.XPath;XPathNodeIterator;true;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Xml;XmlAttribute;false;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_NamespaceURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_Prefix;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_SchemaInfo;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttribute;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlAttributeCollection;false;CopyTo;(System.Array,System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Xml;XmlAttributeCollection;false;CopyTo;(System.Xml.XmlAttribute[],System.Int32);;Element of Argument[-1];Element of Argument[0];value |
|
||||
| System.Xml;XmlCDataSection;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCDataSection;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCDataSection;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCDataSection;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCDataSection;false;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCharacterData;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlCharacterData;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlComment;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlComment;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlComment;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDeclaration;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDeclaration;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDeclaration;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDeclaration;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDeclaration;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;Load;(System.IO.Stream);;Argument[0];Argument[-1];taint |
|
||||
| System.Xml;XmlDocument;false;Load;(System.IO.TextReader);;Argument[0];Argument[-1];taint |
|
||||
| System.Xml;XmlDocument;false;Load;(System.String);;Argument[0];Argument[-1];taint |
|
||||
| System.Xml;XmlDocument;false;Load;(System.Xml.XmlReader);;Argument[0];Argument[-1];taint |
|
||||
| System.Xml;XmlDocument;false;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocument;false;get_SchemaInfo;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentFragment;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentType;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentType;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentType;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlDocumentType;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_Attributes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_NamespaceURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_NextSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_Prefix;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlElement;false;get_SchemaInfo;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntity;false;get_OuterXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlEntityReference;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlLinkedNode;false;get_NextSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlLinkedNode;false;get_PreviousSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNamedNodeMap;false;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String);;Argument[-1];ReturnValue;value |
|
||||
| System.Xml;XmlNamedNodeMap;false;GetNamedItem;(System.String,System.String);;Argument[-1];ReturnValue;value |
|
||||
@@ -2280,29 +2404,40 @@
|
||||
| System.Xml;XmlNode;false;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;SelectSingleNode;(System.String);;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;SelectSingleNode;(System.String,System.Xml.XmlNamespaceManager);;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_Attributes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_ChildNodes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_FirstChild;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_HasChildNodes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_LastChild;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_NamespaceURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_NextSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_OuterXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_Prefix;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_PreviousSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_SchemaInfo;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_Attributes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_BaseURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_ChildNodes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_FirstChild;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_HasChildNodes;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_LastChild;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_NamespaceURI;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_NextSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_OuterXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_OwnerDocument;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_Prefix;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_PreviousSibling;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_SchemaInfo;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNode;true;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNodeList;true;GetEnumerator;();;Element of Argument[-1];Property[System.Collections.IEnumerator.Current] of ReturnValue;value |
|
||||
| System.Xml;XmlNotation;false;get_InnerXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNotation;false;get_IsReadOnly;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNotation;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNotation;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNotation;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlNotation;false;get_OuterXml;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlProcessingInstruction;false;get_InnerText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlProcessingInstruction;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlProcessingInstruction;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlProcessingInstruction;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlProcessingInstruction;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlReader;false;Create;(System.IO.Stream);;Argument[0];ReturnValue;taint |
|
||||
| System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint |
|
||||
| System.Xml;XmlReader;false;Create;(System.IO.Stream,System.Xml.XmlReaderSettings,System.String);;Argument[0];ReturnValue;taint |
|
||||
@@ -2315,6 +2450,24 @@
|
||||
| System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint |
|
||||
| System.Xml;XmlReader;false;Create;(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);;Argument[0];ReturnValue;taint |
|
||||
| System.Xml;XmlReader;false;Create;(System.Xml.XmlReader,System.Xml.XmlReaderSettings);;Argument[0];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlSignificantWhitespace;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlText;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_LocalName;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_Name;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_NodeType;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_ParentNode;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_PreviousText;();;Argument[-1];ReturnValue;taint |
|
||||
| System.Xml;XmlWhitespace;false;get_Value;();;Argument[-1];ReturnValue;taint |
|
||||
| System;Array;false;Add;(System.Object);;Argument[0];Element of Argument[-1];value |
|
||||
| System;Array;false;AsReadOnly<>;(T[]);;Element of Argument[0];Element of ReturnValue;value |
|
||||
| System;Array;false;Clone;();;Element of Argument[0];Element of ReturnValue;value |
|
||||
@@ -2343,19 +2496,21 @@
|
||||
| System;Convert;false;ChangeType;(System.Object,System.Type,System.IFormatProvider);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ChangeType;(System.Object,System.TypeCode);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ChangeType;(System.Object,System.TypeCode,System.IFormatProvider);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;FromBase64CharArray;(System.Char[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;FromBase64String;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;FromHexString;(System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;FromHexString;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;FromBase64CharArray;(System.Char[],System.Int32,System.Int32);;Element of Argument[0];Element of ReturnValue;taint |
|
||||
| System;Convert;false;FromBase64String;(System.String);;Argument[0];Element of ReturnValue;taint |
|
||||
| System;Convert;false;FromHexString;(System.ReadOnlySpan<System.Char>);;Element of Argument[0];Element of ReturnValue;taint |
|
||||
| System;Convert;false;FromHexString;(System.String);;Argument[0];Element of ReturnValue;taint |
|
||||
| System;Convert;false;GetTypeCode;(System.Object);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;IsDBNull;(System.Object);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[]);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Base64FormattingOptions);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32,System.Base64FormattingOptions);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.ReadOnlySpan<System.Byte>,System.Base64FormattingOptions);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];Element of Argument[3];taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Element of Argument[3];taint |
|
||||
| System;Convert;false;ToBase64CharArray;(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.Byte[],System.Int32,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBase64String;(System.ReadOnlySpan<System.Byte>,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBoolean;(System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBoolean;(System.Byte);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToBoolean;(System.Char);;Argument[0];ReturnValue;taint |
|
||||
@@ -2465,9 +2620,9 @@
|
||||
| System;Convert;false;ToDouble;(System.UInt16);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToDouble;(System.UInt32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToDouble;(System.UInt64);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.Byte[]);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.Byte[],System.Int32,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.ReadOnlySpan<System.Byte>);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.Byte[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.Byte[],System.Int32,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToHexString;(System.ReadOnlySpan<System.Byte>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToInt16;(System.Boolean);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToInt16;(System.Byte);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToInt16;(System.Char);;Argument[0];ReturnValue;taint |
|
||||
@@ -2655,9 +2810,15 @@
|
||||
| System;Convert;false;ToUInt64;(System.UInt16);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToUInt64;(System.UInt32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;ToUInt64;(System.UInt64);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];Argument[2];taint |
|
||||
| System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];Element of Argument[1];taint |
|
||||
| System;Convert;false;TryFromBase64Chars;(System.ReadOnlySpan<System.Char>,System.Span<System.Byte>,System.Int32);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];Argument[2];taint |
|
||||
| System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];Element of Argument[1];taint |
|
||||
| System;Convert;false;TryFromBase64String;(System.String,System.Span<System.Byte>,System.Int32);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Argument[0];ReturnValue;taint |
|
||||
| System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Argument[2];taint |
|
||||
| System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];Element of Argument[1];taint |
|
||||
| System;Convert;false;TryToBase64Chars;(System.ReadOnlySpan<System.Byte>,System.Span<System.Char>,System.Int32,System.Base64FormattingOptions);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Int32;false;Parse;(System.ReadOnlySpan<System.Char>,System.Globalization.NumberStyles,System.IFormatProvider);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;Int32;false;Parse;(System.String);;Argument[0];ReturnValue;taint |
|
||||
| System;Int32;false;Parse;(System.String,System.Globalization.NumberStyles);;Argument[0];ReturnValue;taint |
|
||||
@@ -2690,15 +2851,15 @@
|
||||
| System;String;false;Concat;(System.Object,System.Object,System.Object);;Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.Object,System.Object,System.Object);;Argument[2];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.Object[]);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[2];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[2];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Argument[3];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[2];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[2];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>,System.ReadOnlySpan<System.Char>);;Element of Argument[3];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.String,System.String);;Argument[0];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.String,System.String);;Argument[1];ReturnValue;taint |
|
||||
| System;String;false;Concat;(System.String,System.String,System.String);;Argument[0];ReturnValue;taint |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
import shared.FlowSummaries
|
||||
private import semmle.code.csharp.dataflow.ExternalFlow
|
||||
|
||||
class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable {
|
||||
IncludeFilteredSummarizedCallable() { this instanceof SummarizedCallable }
|
||||
@@ -13,9 +14,9 @@ class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable {
|
||||
) {
|
||||
this.propagatesFlow(input, output, preservesValue) and
|
||||
not exists(IncludeSummarizedCallable rsc |
|
||||
rsc.isAbstractOrInterface() and
|
||||
this.(Virtualizable).overridesOrImplementsOrEquals(rsc) and
|
||||
rsc.propagatesFlow(input, output, preservesValue)
|
||||
rsc.isBaseCallableOrPrototype() and
|
||||
rsc.propagatesFlow(input, output, preservesValue) and
|
||||
this.(UnboundCallable).overridesOrImplementsUnbound(rsc)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,12 +284,12 @@ Tuples.cs:
|
||||
# 85| 9: [Record] R1
|
||||
# 85| 12: [NEOperator] !=
|
||||
#-----| 2: (Parameters)
|
||||
# 85| 0: [Parameter] r1
|
||||
# 85| 1: [Parameter] r2
|
||||
# 85| 0: [Parameter] left
|
||||
# 85| 1: [Parameter] right
|
||||
# 85| 13: [EQOperator] ==
|
||||
#-----| 2: (Parameters)
|
||||
# 85| 0: [Parameter] r1
|
||||
# 85| 1: [Parameter] r2
|
||||
# 85| 0: [Parameter] left
|
||||
# 85| 1: [Parameter] right
|
||||
# 85| 14: [Property] EqualityContract
|
||||
# 85| 3: [Getter] get_EqualityContract
|
||||
# 85| 15: [InstanceConstructor] R1
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace JsonTest
|
||||
Sink(jobject["1"]);
|
||||
Sink(jobject["1"]["2"]);
|
||||
Sink((string)jobject["1"]["2"]);
|
||||
Sink(jobject.ToString());
|
||||
|
||||
// Linq JToken tests
|
||||
Sink(jobject.First((JToken i) => true));
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:43:18:43:29 | access to indexer |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:44:18:44:34 | access to indexer |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:45:18:45:42 | call to operator explicit conversion |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:48:18:48:50 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:49:18:49:46 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:50:18:50:51 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:51:18:51:61 | call to method SelectToken |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:46:18:46:35 | call to method ToString |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:49:18:49:50 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:50:18:50:46 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:51:18:51:51 | call to method First<JToken> |
|
||||
| Json.cs:16:24:16:32 | "tainted" | Json.cs:52:18:52:61 | call to method SelectToken |
|
||||
|
||||
@@ -5,26 +5,56 @@
|
||||
| overrides.cs:172:27:172:30 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:177:18:177:21 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:193:19:193:22 | Prop | overrides.cs:182:16:182:19 | Prop |
|
||||
| overrides.cs:193:26:193:28 | get_Prop | overrides.cs:182:23:182:25 | get_Prop |
|
||||
| overrides.cs:193:45:193:47 | set_Prop | overrides.cs:182:28:182:30 | set_Prop |
|
||||
| overrides.cs:205:23:205:26 | Prop | overrides.cs:182:16:182:19 | Prop |
|
||||
| overrides.cs:205:23:205:26 | Prop | overrides.cs:182:16:182:19 | Prop |
|
||||
| overrides.cs:205:30:205:32 | get_Prop | overrides.cs:182:23:182:25 | get_Prop |
|
||||
| overrides.cs:205:30:205:32 | get_Prop | overrides.cs:182:23:182:25 | get_Prop |
|
||||
| overrides.cs:205:35:205:37 | set_Prop | overrides.cs:182:28:182:30 | set_Prop |
|
||||
| overrides.cs:205:35:205:37 | set_Prop | overrides.cs:182:28:182:30 | set_Prop |
|
||||
| overrides.cs:206:21:206:26 | Method | overrides.cs:198:14:198:19 | Method |
|
||||
| overrides.cs:206:21:206:26 | Method | overrides.cs:198:14:198:19 | Method |
|
||||
| overrides.cs:207:23:207:26 | Item | overrides.cs:200:16:200:19 | MyIndexer |
|
||||
| overrides.cs:207:23:207:26 | Item | overrides.cs:200:16:200:19 | MyIndexer |
|
||||
| overrides.cs:207:37:207:39 | get_Item | overrides.cs:200:30:200:32 | get_MyIndexer |
|
||||
| overrides.cs:207:37:207:39 | get_Item | overrides.cs:200:30:200:32 | get_MyIndexer |
|
||||
| overrides.cs:207:56:207:58 | set_Item | overrides.cs:200:35:200:37 | set_MyIndexer |
|
||||
| overrides.cs:207:56:207:58 | set_Item | overrides.cs:200:35:200:37 | set_MyIndexer |
|
||||
| overrides.cs:223:26:223:29 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:224:28:224:35 | Property | overrides.cs:216:13:216:20 | Property |
|
||||
| overrides.cs:224:39:224:41 | get_Property | overrides.cs:216:24:216:26 | get_Property |
|
||||
| overrides.cs:224:44:224:46 | set_Property | overrides.cs:216:29:216:31 | set_Property |
|
||||
| overrides.cs:225:28:225:31 | Item | overrides.cs:217:13:217:16 | Item |
|
||||
| overrides.cs:225:42:225:44 | get_Item | overrides.cs:217:27:217:29 | get_Item |
|
||||
| overrides.cs:226:43:226:47 | Event | overrides.cs:218:28:218:32 | Event |
|
||||
| overrides.cs:226:43:226:47 | add_Event | overrides.cs:218:28:218:32 | add_Event |
|
||||
| overrides.cs:226:43:226:47 | remove_Event | overrides.cs:218:28:218:32 | remove_Event |
|
||||
| overrides.cs:241:24:241:27 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:242:16:242:23 | Property | overrides.cs:216:13:216:20 | Property |
|
||||
| overrides.cs:242:27:242:29 | get_Property | overrides.cs:216:24:216:26 | get_Property |
|
||||
| overrides.cs:242:32:242:34 | set_Property | overrides.cs:216:29:216:31 | set_Property |
|
||||
| overrides.cs:243:16:243:19 | Item | overrides.cs:217:13:217:16 | Item |
|
||||
| overrides.cs:243:30:243:32 | get_Item | overrides.cs:217:27:217:29 | get_Item |
|
||||
| overrides.cs:244:31:244:35 | Event | overrides.cs:218:28:218:32 | Event |
|
||||
| overrides.cs:244:39:244:41 | add_Event | overrides.cs:218:28:218:32 | add_Event |
|
||||
| overrides.cs:244:47:244:52 | remove_Event | overrides.cs:218:28:218:32 | remove_Event |
|
||||
| overrides.cs:249:22:249:25 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:250:24:250:31 | Property | overrides.cs:216:13:216:20 | Property |
|
||||
| overrides.cs:250:35:250:37 | get_Property | overrides.cs:216:24:216:26 | get_Property |
|
||||
| overrides.cs:250:40:250:42 | set_Property | overrides.cs:216:29:216:31 | set_Property |
|
||||
| overrides.cs:251:24:251:27 | Item | overrides.cs:217:13:217:16 | Item |
|
||||
| overrides.cs:251:38:251:40 | get_Item | overrides.cs:217:27:217:29 | get_Item |
|
||||
| overrides.cs:252:39:252:43 | Event | overrides.cs:218:28:218:32 | Event |
|
||||
| overrides.cs:252:39:252:43 | add_Event | overrides.cs:218:28:218:32 | add_Event |
|
||||
| overrides.cs:252:39:252:43 | remove_Event | overrides.cs:218:28:218:32 | remove_Event |
|
||||
| overrides.cs:267:27:267:30 | M<> | overrides.cs:162:11:162:14 | M<> |
|
||||
| overrides.cs:268:29:268:36 | Property | overrides.cs:216:13:216:20 | Property |
|
||||
| overrides.cs:268:40:268:42 | get_Property | overrides.cs:216:24:216:26 | get_Property |
|
||||
| overrides.cs:268:45:268:47 | set_Property | overrides.cs:216:29:216:31 | set_Property |
|
||||
| overrides.cs:269:29:269:32 | Item | overrides.cs:217:13:217:16 | Item |
|
||||
| overrides.cs:269:43:269:45 | get_Item | overrides.cs:217:27:217:29 | get_Item |
|
||||
| overrides.cs:270:44:270:48 | Event | overrides.cs:218:28:218:32 | Event |
|
||||
| overrides.cs:270:44:270:48 | add_Event | overrides.cs:218:28:218:32 | add_Event |
|
||||
| overrides.cs:270:44:270:48 | remove_Event | overrides.cs:218:28:218:32 | remove_Event |
|
||||
| overrides.cs:284:25:284:28 | M<> | overrides.cs:279:18:279:21 | M<> |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import csharp
|
||||
|
||||
from Virtualizable v1, Virtualizable v2
|
||||
from Overridable v1, Overridable v2
|
||||
where
|
||||
v1 = v2.getAnUltimateImplementor() and
|
||||
v1.fromSource() and
|
||||
|
||||
@@ -4,41 +4,87 @@
|
||||
| overrides.A1.Item[int] | overrides.I5.Item[int] | implements |
|
||||
| overrides.A1.M<T>(dynamic[], T) | overrides.I2<System.Object[]>.M<S>(Object[], S) | implements |
|
||||
| overrides.A1.Property | overrides.I5.Property | implements |
|
||||
| overrides.A1.add_Event(EventHandler) | overrides.I5.add_Event(EventHandler) | implements |
|
||||
| overrides.A1.get_Item(int) | overrides.I5.get_Item(int) | implements |
|
||||
| overrides.A1.get_Property() | overrides.I5.get_Property() | implements |
|
||||
| overrides.A1.remove_Event(EventHandler) | overrides.I5.remove_Event(EventHandler) | implements |
|
||||
| overrides.A1.set_Property(int) | overrides.I5.set_Property(int) | implements |
|
||||
| overrides.A4.Event | overrides.I5.Event | implements |
|
||||
| overrides.A4.Item[int] | overrides.I5.Item[int] | implements |
|
||||
| overrides.A4.M<T>(dynamic[], T) | overrides.I2<System.Object[]>.M<S>(Object[], S) | implements |
|
||||
| overrides.A4.Property | overrides.I5.Property | implements |
|
||||
| overrides.A4.add_Event(EventHandler) | overrides.I5.add_Event(EventHandler) | implements |
|
||||
| overrides.A4.get_Item(int) | overrides.I5.get_Item(int) | implements |
|
||||
| overrides.A4.get_Property() | overrides.I5.get_Property() | implements |
|
||||
| overrides.A4.remove_Event(EventHandler) | overrides.I5.remove_Event(EventHandler) | implements |
|
||||
| overrides.A4.set_Property(int) | overrides.I5.set_Property(int) | implements |
|
||||
| overrides.A6.Event | overrides.I5.Event | implements |
|
||||
| overrides.A6.Item[int] | overrides.I5.Item[int] | implements |
|
||||
| overrides.A6.M<T>(Object[], T) | overrides.I2<System.Object[]>.M<S>(Object[], S) | implements |
|
||||
| overrides.A6.Property | overrides.I5.Property | implements |
|
||||
| overrides.A6.add_Event(EventHandler) | overrides.I5.add_Event(EventHandler) | implements |
|
||||
| overrides.A6.get_Item(int) | overrides.I5.get_Item(int) | implements |
|
||||
| overrides.A6.get_Property() | overrides.I5.get_Property() | implements |
|
||||
| overrides.A6.remove_Event(EventHandler) | overrides.I5.remove_Event(EventHandler) | implements |
|
||||
| overrides.A6.set_Property(int) | overrides.I5.set_Property(int) | implements |
|
||||
| overrides.A8.Event | overrides.A1.Event | overrides |
|
||||
| overrides.A8.Item[int] | overrides.A1.Item[int] | overrides |
|
||||
| overrides.A8.M<T>(dynamic[], T) | overrides.A1.M<T>(dynamic[], T) | overrides |
|
||||
| overrides.A8.Property | overrides.A1.Property | overrides |
|
||||
| overrides.A8.add_Event(EventHandler) | overrides.A1.add_Event(EventHandler) | overrides |
|
||||
| overrides.A8.get_Item(int) | overrides.A1.get_Item(int) | overrides |
|
||||
| overrides.A8.get_Property() | overrides.A1.get_Property() | overrides |
|
||||
| overrides.A8.remove_Event(EventHandler) | overrides.A1.remove_Event(EventHandler) | overrides |
|
||||
| overrides.A8.set_Property(int) | overrides.A1.set_Property(int) | overrides |
|
||||
| overrides.A9.Event | overrides.A1.Event | overrides |
|
||||
| overrides.A9.Item[int] | overrides.A1.Item[int] | overrides |
|
||||
| overrides.A9.M<T>(dynamic[], T) | overrides.A1.M<T>(dynamic[], T) | overrides |
|
||||
| overrides.A9.Property | overrides.A1.Property | overrides |
|
||||
| overrides.A9.add_Event(EventHandler) | overrides.A1.add_Event(EventHandler) | overrides |
|
||||
| overrides.A9.get_Item(int) | overrides.A1.get_Item(int) | overrides |
|
||||
| overrides.A9.get_Property() | overrides.A1.get_Property() | overrides |
|
||||
| overrides.A9.remove_Event(EventHandler) | overrides.A1.remove_Event(EventHandler) | overrides |
|
||||
| overrides.A9.set_Property(int) | overrides.A1.set_Property(int) | overrides |
|
||||
| overrides.A.E1 | overrides.B.E1 | overrides |
|
||||
| overrides.A.P1 | overrides.B.P1 | overrides |
|
||||
| overrides.A.P2 | overrides.B.P2 | overrides |
|
||||
| overrides.A.P3 | overrides.B.P3 | overrides |
|
||||
| overrides.A.P4 | overrides.C.P4 | overrides |
|
||||
| overrides.A.add_E1(EventHandler) | overrides.B.add_E1(EventHandler) | overrides |
|
||||
| overrides.A.f2() | overrides.B.f2() | overrides |
|
||||
| overrides.A.f3() | overrides.B.f3() | overrides |
|
||||
| overrides.A.f4() | overrides.C.f4() | overrides |
|
||||
| overrides.A.f5() | overrides.B.f5() | overrides |
|
||||
| overrides.A.f6() | overrides.B.f6() | overrides |
|
||||
| overrides.A.get_P1() | overrides.B.get_P1() | overrides |
|
||||
| overrides.A.get_P2() | overrides.B.get_P2() | overrides |
|
||||
| overrides.A.get_P3() | overrides.B.get_P3() | overrides |
|
||||
| overrides.A.get_P4() | overrides.C.get_P4() | overrides |
|
||||
| overrides.A.remove_E1(EventHandler) | overrides.B.remove_E1(EventHandler) | overrides |
|
||||
| overrides.A.set_P1(string) | overrides.B.set_P1(string) | overrides |
|
||||
| overrides.A.set_P3(string) | overrides.B.set_P3(string) | overrides |
|
||||
| overrides.A.set_P4(string) | overrides.C.set_P4(string) | overrides |
|
||||
| overrides.B.f5() | overrides.C.f5() | overrides |
|
||||
| overrides.C2.Prop | overrides.C1.Prop | overrides |
|
||||
| overrides.C2.Prop | overrides.I3.Prop | implements |
|
||||
| overrides.C2.get_Prop() | overrides.C1.get_Prop() | overrides |
|
||||
| overrides.C2.get_Prop() | overrides.I3.get_Prop() | implements |
|
||||
| overrides.C2.set_Prop(string) | overrides.C1.set_Prop(string) | overrides |
|
||||
| overrides.C2.set_Prop(string) | overrides.I3.set_Prop(string) | implements |
|
||||
| overrides.C3<>.Item[int] | overrides.I4.MyIndexer[int] | implements |
|
||||
| overrides.C3<>.Method() | overrides.I4.Method() | implements |
|
||||
| overrides.C3<>.Prop | overrides.I3.Prop | implements |
|
||||
| overrides.C3<>.get_Item(int) | overrides.I4.get_MyIndexer(int) | implements |
|
||||
| overrides.C3<>.get_Prop() | overrides.I3.get_Prop() | implements |
|
||||
| overrides.C3<>.set_Item(int, string) | overrides.I4.set_MyIndexer(int, string) | implements |
|
||||
| overrides.C3<>.set_Prop(string) | overrides.I3.set_Prop(string) | implements |
|
||||
| overrides.C3<System.Int32>.Item[int] | overrides.I4.MyIndexer[int] | implements |
|
||||
| overrides.C3<System.Int32>.Method() | overrides.I4.Method() | implements |
|
||||
| overrides.C3<System.Int32>.Prop | overrides.I3.Prop | implements |
|
||||
| overrides.C3<System.Int32>.get_Item(int) | overrides.I4.get_MyIndexer(int) | implements |
|
||||
| overrides.C3<System.Int32>.get_Prop() | overrides.I3.get_Prop() | implements |
|
||||
| overrides.C3<System.Int32>.set_Item(int, string) | overrides.I4.set_MyIndexer(int, string) | implements |
|
||||
| overrides.C3<System.Int32>.set_Prop(string) | overrides.I3.set_Prop(string) | implements |
|
||||
| overrides.D.ToString() | overrides.C.ToString() | overrides |
|
||||
| overrides.D.f2() | overrides.A.f2() | overrides |
|
||||
| overrides.E2.M() | overrides.E.M() | overrides |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import csharp
|
||||
|
||||
from Virtualizable v1, Virtualizable v2, string kind
|
||||
from Overridable v1, Overridable v2, string kind
|
||||
where
|
||||
(
|
||||
v1.getOverridee() = v2 and kind = "overrides"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: codeql-csharp-tests
|
||||
version: 0.0.2
|
||||
groups: [csharp, test]
|
||||
dependencies:
|
||||
codeql/csharp-all: "*"
|
||||
codeql/csharp-queries: "*"
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace System.Web
|
||||
{
|
||||
public void Transfer(string path) { }
|
||||
public string UrlEncode(string s) => null;
|
||||
public string HtmlEncode(string s) => null;
|
||||
}
|
||||
|
||||
public class HttpApplication : IHttpHandler
|
||||
|
||||
@@ -16,14 +16,20 @@ abstract class IncludeSummarizedCallable extends RelevantSummarizedCallable {
|
||||
)
|
||||
}
|
||||
|
||||
predicate isAbstractOrInterface() {
|
||||
this.getDeclaringType() instanceof Interface or
|
||||
this.(Modifiable).isAbstract()
|
||||
/** Holds if the summary should apply for all overrides of this. */
|
||||
predicate isBaseCallableOrPrototype() {
|
||||
this.getDeclaringType() instanceof Interface
|
||||
or
|
||||
exists(Modifiable m | m = [this.(Modifiable), this.(Accessor).getDeclaration()] |
|
||||
m.isAbstract()
|
||||
or
|
||||
this.getDeclaringType().(Modifiable).isAbstract() and m.(Virtualizable).isVirtual()
|
||||
)
|
||||
}
|
||||
|
||||
/** Gets a string representing, whether the declaring type is an interface. */
|
||||
/** Gets a string representing, whether the summary should apply for all overrides of this. */
|
||||
private string getCallableOverride() {
|
||||
if this.isAbstractOrInterface() then result = "true" else result = "false"
|
||||
if this.isBaseCallableOrPrototype() then result = "true" else result = "false"
|
||||
}
|
||||
|
||||
/** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */
|
||||
|
||||
1
csharp/upgrades/CHANGELOG.md
Normal file
1
csharp/upgrades/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
1
csharp/upgrades/change-notes/released/0.0.4.md
Normal file
1
csharp/upgrades/change-notes/released/0.0.4.md
Normal file
@@ -0,0 +1 @@
|
||||
## 0.0.4
|
||||
2
csharp/upgrades/codeql-pack.release.yml
Normal file
2
csharp/upgrades/codeql-pack.release.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
lastReleaseVersion: 0.0.4
|
||||
@@ -1,4 +1,5 @@
|
||||
name: codeql/csharp-upgrades
|
||||
groups: csharp
|
||||
version: 0.0.5-dev
|
||||
upgrades: .
|
||||
version: 0.0.2
|
||||
library: true
|
||||
|
||||
@@ -208,14 +208,13 @@ commands that you can specify for compiled languages.
|
||||
|
||||
codeql database create cpp-database --language=cpp --command=make
|
||||
|
||||
- C# project built using ``dotnet build`` (.NET Core 3.0 or later)::
|
||||
- C# project built using ``dotnet build``::
|
||||
|
||||
codeql database create csharp-database --language=csharp --command='dotnet build /t:rebuild'
|
||||
For C# projects using either `dotnet build` or `msbuild`, you should specify `/p:UseSharedCompilation=false`
|
||||
in the build command. It is also a good idea to add `/t:rebuild` to ensure that all code will be built (code
|
||||
that is not built will not be included in the CodeQL database):
|
||||
|
||||
On Linux and macOS (but not Windows), you need to disable shared compilation when building C# projects
|
||||
with .NET Core 2 or earlier, so expand the command to::
|
||||
|
||||
codeql database create csharp-database --language=csharp --command='dotnet build /p:UseSharedCompilation=false /t:rebuild'
|
||||
codeql database create csharp-database --language=csharp --command='dotnet build /p:UseSharedCompilation=false /t:rebuild'
|
||||
|
||||
- Go project built using the ``COEQL_EXTRACTOR_GO_BUILD_TRACING=on`` environment variable::
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
Eclipse compiler for Java (ECJ) [5]_",``.java``
|
||||
JavaScript,ECMAScript 2021 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [6]_"
|
||||
Python,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9",Not applicable,``.py``
|
||||
Ruby [7]_,"up to 3.02",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``"
|
||||
Ruby [7]_,"up to 3.0.2",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``"
|
||||
TypeScript [8]_,"2.6-4.5",Standard TypeScript compiler,"``.ts``, ``.tsx``"
|
||||
|
||||
.. container:: footnote-group
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user