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