mirror of
https://github.com/github/codeql.git
synced 2026-04-22 07:15:15 +02:00
C#: Change StringBuilder flow models to not use Element access path
This commit is contained in:
@@ -25,81 +25,80 @@ extensions:
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char*,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[])", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[])", "", "Argument[0].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[],System.Int32,System.Int32)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[],System.Int32,System.Int32)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Char[],System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Decimal)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Double)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Int16)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Int64)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.ReadOnlyMemory<System.Char>)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.ReadOnlySpan<System.Char>)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.SByte)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Single)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String,System.Int32,System.Int32)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String,System.Int32,System.Int32)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.String,System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Text.StringBuilder)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.Text.StringBuilder,System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.UInt16)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.UInt32)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Append", "(System.UInt64)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[3]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[4]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[3]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[4]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object[])", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object[])", "", "Argument[2].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object[])", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object[])", "", "Argument[2].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.IFormatProvider,System.String,System.Object[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[2]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[3]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object,System.Object,System.Object)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object[])", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object[])", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object[])", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendFormat", "(System.String,System.Object[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.Object[])", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.Object[])", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.Object[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.String[])", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.String[])", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.Char,System.String[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.Object[])", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.Object[])", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.Object[])", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.Object[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.String[])", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.String[])", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.String[])", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin", "(System.String,System.String[])", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.Char,System.Collections.Generic.IEnumerable<T>)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.Char,System.Collections.Generic.IEnumerable<T>)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.Char,System.Collections.Generic.IEnumerable<T>)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.String,System.Collections.Generic.IEnumerable<T>)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.String,System.Collections.Generic.IEnumerable<T>)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.String,System.Collections.Generic.IEnumerable<T>)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.String,System.Collections.Generic.IEnumerable<T>)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendJoin<T>", "(System.String,System.Collections.Generic.IEnumerable<T>)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendLine", "()", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendLine", "(System.String)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendLine", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "AppendLine", "(System.String)", "", "Argument[this]", "ReturnValue", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "Clear", "()", "", "Argument[this].WithoutElement", "Argument[this]", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String,System.Int32)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String,System.Int32,System.Int32,System.Int32)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String,System.Int32)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "StringBuilder", "(System.String,System.Int32,System.Int32,System.Int32)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "ToString", "()", "", "Argument[this].Element", "ReturnValue", "taint", "manual"]
|
||||
- ["System.Text", "StringBuilder", False, "ToString", "(System.Int32,System.Int32)", "", "Argument[this].Element", "ReturnValue", "taint", "manual"]
|
||||
|
||||
@@ -18,7 +18,13 @@ private import semmle.code.csharp.security.dataflow.flowsources.Remote
|
||||
* Holds if `node` should be a sanitizer in all global taint flow configurations
|
||||
* but not in local taint.
|
||||
*/
|
||||
predicate defaultTaintSanitizer(DataFlow::Node node) { none() }
|
||||
predicate defaultTaintSanitizer(DataFlow::Node node) {
|
||||
exists(MethodCall mc |
|
||||
mc.getTarget().hasFullyQualifiedName("System.Text.StringBuilder", "Clear")
|
||||
|
|
||||
node.asExpr() = mc.getQualifier()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if default `TaintTracking::Configuration`s should allow implicit reads
|
||||
|
||||
Reference in New Issue
Block a user