4 instantiations of TaintedDataAbstractValue
Microsoft.CodeAnalysis.AnalyzerUtilities (4)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAbstractValue.cs (4)
20
public static readonly TaintedDataAbstractValue NotTainted =
new
(TaintedDataAbstractValueKind.NotTainted, ImmutableHashSet<SymbolAccess>.Empty);
60
return new
TaintedDataAbstractValue
(
80
return new
TaintedDataAbstractValue
(
100
return new
TaintedDataAbstractValue
(
109 references to TaintedDataAbstractValue
Microsoft.CodeAnalysis.AnalyzerUtilities (109)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAbstractValue.cs (12)
18
internal sealed class TaintedDataAbstractValue : CacheBasedEquatable<
TaintedDataAbstractValue
>
20
public static readonly
TaintedDataAbstractValue
NotTainted = new(TaintedDataAbstractValueKind.NotTainted, ImmutableHashSet<SymbolAccess>.Empty);
44
protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable<
TaintedDataAbstractValue
> obj)
46
var
other = (
TaintedDataAbstractValue
)obj;
58
internal static
TaintedDataAbstractValue
CreateTainted(ISymbol taintedSymbol, SyntaxNode accessingSyntax, ISymbol accessingMethod)
75
internal static
TaintedDataAbstractValue
MergeTainted(
TaintedDataAbstractValue
value1,
TaintedDataAbstractValue
value2)
90
internal static
TaintedDataAbstractValue
MergeTainted(IEnumerable<
TaintedDataAbstractValue
> taintedValues)
93
foreach (
TaintedDataAbstractValue
value in taintedValues)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAbstractValueKind.cs (1)
8
/// Kind for <see cref="
TaintedDataAbstractValue
"/>.
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.CoreTaintedDataAnalysisDataDomain.cs (5)
12
private sealed class CoreTaintedDataAnalysisDataDomain : AnalysisEntityMapAbstractDomain<
TaintedDataAbstractValue
>
19
protected override bool CanSkipNewEntry(AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
24
protected override
TaintedDataAbstractValue
GetDefaultValue(AnalysisEntity analysisEntity)
26
return
TaintedDataAbstractValue
.NotTainted;
29
protected override void AssertValidEntryForMergedMap(AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.cs (3)
19
internal partial class TaintedDataAnalysis : ForwardDataFlowAnalysis<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult, TaintedDataBlockAnalysisResult,
TaintedDataAbstractValue
>
21
internal static readonly AbstractValueDomain<
TaintedDataAbstractValue
> ValueDomainInstance = TaintedDataAbstractValueDomain.Default;
129
DataFlowAnalysisResult<TaintedDataBlockAnalysisResult,
TaintedDataAbstractValue
> dataFlowAnalysisResult)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataAbstractValueDomain.cs (11)
11
private sealed class TaintedDataAbstractValueDomain : AbstractValueDomain<
TaintedDataAbstractValue
>
15
public override
TaintedDataAbstractValue
UnknownOrMayBeValue =>
TaintedDataAbstractValue
.NotTainted;
17
public override
TaintedDataAbstractValue
Bottom =>
TaintedDataAbstractValue
.NotTainted;
19
public override int Compare(
TaintedDataAbstractValue
oldValue,
TaintedDataAbstractValue
newValue, bool assertMonotonicity)
36
public override
TaintedDataAbstractValue
Merge(
TaintedDataAbstractValue
value1,
TaintedDataAbstractValue
value2)
55
return
TaintedDataAbstractValue
.MergeTainted(value1, value2);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataAnalysisDomain.cs (2)
11
private sealed class TaintedDataAnalysisDomain : PredicatedAnalysisDataDomain<TaintedDataAnalysisData,
TaintedDataAbstractValue
>
13
public TaintedDataAnalysisDomain(MapAbstractDomain<AnalysisEntity,
TaintedDataAbstractValue
> coreDataAnalysisDomain)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (55)
26
private sealed class TaintedDataOperationVisitor : AnalysisEntityDataFlowOperationVisitor<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult,
TaintedDataAbstractValue
>
66
protected override
TaintedDataAbstractValue
GetAbstractDefaultValue(ITypeSymbol? type)
68
return
TaintedDataAbstractValue
.NotTainted;
71
protected override
TaintedDataAbstractValue
GetAbstractValue(AnalysisEntity analysisEntity)
73
return this.CurrentAnalysisData.TryGetValue(analysisEntity, out
TaintedDataAbstractValue
? value) ? value :
TaintedDataAbstractValue
.NotTainted;
121
protected override
TaintedDataAbstractValue
GetDefaultValueForParameterOnEntry(IParameterSymbol parameter, AnalysisEntity analysisEntity)
145
return
TaintedDataAbstractValue
.CreateTainted(parameter, parameterSyntaxNode, this.OwningSymbol);
151
protected override void SetAbstractValue(AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
162
private static void SetAbstractValueCore(TaintedDataAnalysisData taintedAnalysisData, AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
175
public override
TaintedDataAbstractValue
DefaultVisit(IOperation operation, object? argument)
183
List<
TaintedDataAbstractValue
>? taintedValues = null;
186
TaintedDataAbstractValue
childValue = Visit(childOperation, argument);
189
taintedValues ??= new List<
TaintedDataAbstractValue
>();
203
return
TaintedDataAbstractValue
.MergeTainted(taintedValues);
212
public override
TaintedDataAbstractValue
VisitConversion(IConversionOperation operation, object? argument)
214
TaintedDataAbstractValue
operandValue = Visit(operation.Operand, argument);
230
protected override
TaintedDataAbstractValue
ComputeAnalysisValueForReferenceOperation(IOperation operation,
TaintedDataAbstractValue
defaultValue)
236
return
TaintedDataAbstractValue
.CreateTainted(propertyReferenceOperation.Member, propertyReferenceOperation.Syntax, this.OwningSymbol);
241
return this.CurrentAnalysisData.TryGetValue(analysisEntity, out
TaintedDataAbstractValue
? value) ? value : defaultValue;
248
public override
TaintedDataAbstractValue
VisitObjectCreation(IObjectCreationOperation operation, object? argument)
250
TaintedDataAbstractValue
baseValue = base.VisitObjectCreation(operation, argument);
260
public override
TaintedDataAbstractValue
VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
266
TaintedDataAbstractValue
defaultValue)
269
TaintedDataAbstractValue
result = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
323
this.CacheAbstractValue(argumentOperation,
TaintedDataAbstractValue
.CreateTainted(argumentOperation.Parameter, argumentOperation.Syntax, method));
332
result =
TaintedDataAbstractValue
.CreateTainted(method, originalOperation.Syntax, this.OwningSymbol);
373
SetTaintedForEntity(visitedInstance,
TaintedDataAbstractValue
.NotTainted);
386
result =
TaintedDataAbstractValue
.NotTainted;
394
result =
TaintedDataAbstractValue
.NotTainted;
401
SetTaintedForEntity(thenSanitizedTargetOperation,
TaintedDataAbstractValue
.NotTainted);
422
public override
TaintedDataAbstractValue
VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
TaintedDataAbstractValue
defaultValue)
425
TaintedDataAbstractValue
baseValue = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue);
436
public override
TaintedDataAbstractValue
VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
TaintedDataAbstractValue
defaultValue)
439
TaintedDataAbstractValue
baseValue = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue);
457
protected override
TaintedDataAbstractValue
ComputeAnalysisValueForEscapedRefOrOutArgument(
460
TaintedDataAbstractValue
defaultValue)
468
TaintedDataAbstractValue
returnValueAbstractValue = this.GetCachedAbstractValue(invocationOperation);
479
public override
TaintedDataAbstractValue
VisitArrayInitializer(IArrayInitializerOperation operation, object? argument)
482
TaintedDataAbstractValue
baseAbstractValue = base.VisitArrayInitializer(operation, argument);
488
IEnumerable<
TaintedDataAbstractValue
> taintedAbstractValues =
490
.Select<IOperation,
TaintedDataAbstractValue
>(this.GetCachedAbstractValue)
497
TaintedDataAbstractValue
? result = null;
500
result =
TaintedDataAbstractValue
.MergeTainted(taintedAbstractValues);
508
TaintedDataAbstractValue
taintedDataAbstractValue =
TaintedDataAbstractValue
.CreateTainted(arrayTypeSymbol, arrayCreationOperation.Syntax, this.OwningSymbol);
509
result = result == null ? taintedDataAbstractValue :
TaintedDataAbstractValue
.MergeTainted(result, taintedDataAbstractValue);
522
protected override
TaintedDataAbstractValue
VisitAssignmentOperation(IAssignmentOperation operation, object? argument)
524
TaintedDataAbstractValue
taintedDataAbstractValue = base.VisitAssignmentOperation(operation, argument);
571
TaintedDataAbstractValue
abstractValue = this.GetCachedAbstractValue(taintedArgument);
599
TaintedDataAbstractValue
assignmentValueAbstractValue = this.GetCachedAbstractValue(assignmentOperation.Value);
762
private void SetTaintedForEntity(IOperation operation,
TaintedDataAbstractValue
value)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysisContext.cs (5)
18
using InterproceduralTaintedDataAnalysisData = InterproceduralAnalysisData<TaintedDataAnalysisData, TaintedDataAnalysisContext,
TaintedDataAbstractValue
>;
21
internal sealed class TaintedDataAnalysisContext : AbstractDataFlowAnalysisContext<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult,
TaintedDataAbstractValue
>
24
AbstractValueDomain<
TaintedDataAbstractValue
> valueDomain,
66
AbstractValueDomain<
TaintedDataAbstractValue
> valueDomain,
151
protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult,
TaintedDataAbstractValue
> obj)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysisData.cs (11)
12
internal sealed class TaintedDataAnalysisData : AnalysisEntityBasedPredicateAnalysisData<
TaintedDataAbstractValue
>
19
public TaintedDataAnalysisData(IDictionary<AnalysisEntity,
TaintedDataAbstractValue
> fromData)
29
public TaintedDataAnalysisData(TaintedDataAnalysisData fromData, TaintedDataAnalysisData data, MapAbstractDomain<AnalysisEntity,
TaintedDataAbstractValue
> coreDataAnalysisDomain)
34
protected override AbstractValueDomain<
TaintedDataAbstractValue
> ValueDomain => TaintedDataAnalysis.ValueDomainInstance;
35
public override AnalysisEntityBasedPredicateAnalysisData<
TaintedDataAbstractValue
> Clone()
40
public override int Compare(AnalysisEntityBasedPredicateAnalysisData<
TaintedDataAbstractValue
> other, MapAbstractDomain<AnalysisEntity,
TaintedDataAbstractValue
> coreDataAnalysisDomain)
45
public override AnalysisEntityBasedPredicateAnalysisData<
TaintedDataAbstractValue
> WithMergedData(AnalysisEntityBasedPredicateAnalysisData<
TaintedDataAbstractValue
> data, MapAbstractDomain<AnalysisEntity,
TaintedDataAbstractValue
> coreDataAnalysisDomain)
50
public void Reset(
TaintedDataAbstractValue
resetValue)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysisResult.cs (2)
13
internal sealed class TaintedDataAnalysisResult : DataFlowAnalysisResult<TaintedDataBlockAnalysisResult,
TaintedDataAbstractValue
>
16
DataFlowAnalysisResult<TaintedDataBlockAnalysisResult,
TaintedDataAbstractValue
> dataFlowAnalysisResult,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataBlockAnalysisResult.cs (2)
16
public ImmutableDictionary<AnalysisEntity,
TaintedDataAbstractValue
> Data { get; }
21
Data = blockAnalysisData?.CoreAnalysisData.ToImmutableDictionary() ?? ImmutableDictionary<AnalysisEntity,
TaintedDataAbstractValue
>.Empty;