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
(
108 references to TaintedDataAbstractValue
Microsoft.CodeAnalysis.AnalyzerUtilities (108)
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 (54)
27
private sealed class TaintedDataOperationVisitor : AnalysisEntityDataFlowOperationVisitor<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult,
TaintedDataAbstractValue
>
67
protected override
TaintedDataAbstractValue
GetAbstractDefaultValue(ITypeSymbol? type)
69
return
TaintedDataAbstractValue
.NotTainted;
72
protected override
TaintedDataAbstractValue
GetAbstractValue(AnalysisEntity analysisEntity)
74
return this.CurrentAnalysisData.TryGetValue(analysisEntity, out
TaintedDataAbstractValue
? value) ? value :
TaintedDataAbstractValue
.NotTainted;
122
protected override
TaintedDataAbstractValue
GetDefaultValueForParameterOnEntry(IParameterSymbol parameter, AnalysisEntity analysisEntity)
146
return
TaintedDataAbstractValue
.CreateTainted(parameter, parameterSyntaxNode, this.OwningSymbol);
152
protected override void SetAbstractValue(AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
163
private static void SetAbstractValueCore(TaintedDataAnalysisData taintedAnalysisData, AnalysisEntity analysisEntity,
TaintedDataAbstractValue
value)
176
public override
TaintedDataAbstractValue
DefaultVisit(IOperation operation, object? argument)
184
List<
TaintedDataAbstractValue
>? taintedValues = null;
187
TaintedDataAbstractValue
childValue = Visit(childOperation, argument);
204
return
TaintedDataAbstractValue
.MergeTainted(taintedValues);
213
public override
TaintedDataAbstractValue
VisitConversion(IConversionOperation operation, object? argument)
215
TaintedDataAbstractValue
operandValue = Visit(operation.Operand, argument);
231
protected override
TaintedDataAbstractValue
ComputeAnalysisValueForReferenceOperation(IOperation operation,
TaintedDataAbstractValue
defaultValue)
237
return
TaintedDataAbstractValue
.CreateTainted(propertyReferenceOperation.Member, propertyReferenceOperation.Syntax, this.OwningSymbol);
242
return this.CurrentAnalysisData.TryGetValue(analysisEntity, out
TaintedDataAbstractValue
? value) ? value : defaultValue;
249
public override
TaintedDataAbstractValue
VisitObjectCreation(IObjectCreationOperation operation, object? argument)
251
TaintedDataAbstractValue
baseValue = base.VisitObjectCreation(operation, argument);
261
public override
TaintedDataAbstractValue
VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
267
TaintedDataAbstractValue
defaultValue)
270
TaintedDataAbstractValue
result = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
324
this.CacheAbstractValue(argumentOperation,
TaintedDataAbstractValue
.CreateTainted(argumentOperation.Parameter, argumentOperation.Syntax, method));
333
result =
TaintedDataAbstractValue
.CreateTainted(method, originalOperation.Syntax, this.OwningSymbol);
374
SetTaintedForEntity(visitedInstance,
TaintedDataAbstractValue
.NotTainted);
387
result =
TaintedDataAbstractValue
.NotTainted;
395
result =
TaintedDataAbstractValue
.NotTainted;
402
SetTaintedForEntity(thenSanitizedTargetOperation,
TaintedDataAbstractValue
.NotTainted);
423
public override
TaintedDataAbstractValue
VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
TaintedDataAbstractValue
defaultValue)
426
TaintedDataAbstractValue
baseValue = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue);
437
public override
TaintedDataAbstractValue
VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
TaintedDataAbstractValue
defaultValue)
440
TaintedDataAbstractValue
baseValue = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue);
458
protected override
TaintedDataAbstractValue
ComputeAnalysisValueForEscapedRefOrOutArgument(
461
TaintedDataAbstractValue
defaultValue)
469
TaintedDataAbstractValue
returnValueAbstractValue = this.GetCachedAbstractValue(invocationOperation);
480
public override
TaintedDataAbstractValue
VisitArrayInitializer(IArrayInitializerOperation operation, object? argument)
483
TaintedDataAbstractValue
baseAbstractValue = base.VisitArrayInitializer(operation, argument);
489
IEnumerable<
TaintedDataAbstractValue
> taintedAbstractValues =
491
.Select<IOperation,
TaintedDataAbstractValue
>(this.GetCachedAbstractValue)
498
TaintedDataAbstractValue
? result = null;
501
result =
TaintedDataAbstractValue
.MergeTainted(taintedAbstractValues);
509
TaintedDataAbstractValue
taintedDataAbstractValue =
TaintedDataAbstractValue
.CreateTainted(arrayTypeSymbol, arrayCreationOperation.Syntax, this.OwningSymbol);
510
result = result == null ? taintedDataAbstractValue :
TaintedDataAbstractValue
.MergeTainted(result, taintedDataAbstractValue);
523
protected override
TaintedDataAbstractValue
VisitAssignmentOperation(IAssignmentOperation operation, object? argument)
525
TaintedDataAbstractValue
taintedDataAbstractValue = base.VisitAssignmentOperation(operation, argument);
572
TaintedDataAbstractValue
abstractValue = this.GetCachedAbstractValue(taintedArgument);
600
TaintedDataAbstractValue
assignmentValueAbstractValue = this.GetCachedAbstractValue(assignmentOperation.Value);
763
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;