4 instantiations of TaintedDataAbstractValue
Microsoft.CodeAnalysis.NetAnalyzers (4)
src\40daf5e1cab76dff\TaintedDataAbstractValue.cs (4)
19public static readonly TaintedDataAbstractValue NotTainted = new(TaintedDataAbstractValueKind.NotTainted, ImmutableHashSet<SymbolAccess>.Empty); 59return new TaintedDataAbstractValue( 79return new TaintedDataAbstractValue( 99return new TaintedDataAbstractValue(
109 references to TaintedDataAbstractValue
Microsoft.CodeAnalysis.NetAnalyzers (109)
src\40daf5e1cab76dff\TaintedDataAbstractValue.cs (12)
17internal sealed class TaintedDataAbstractValue : CacheBasedEquatable<TaintedDataAbstractValue> 19public static readonly TaintedDataAbstractValue NotTainted = new(TaintedDataAbstractValueKind.NotTainted, ImmutableHashSet<SymbolAccess>.Empty); 43protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable<TaintedDataAbstractValue> obj) 45var other = (TaintedDataAbstractValue)obj; 57internal static TaintedDataAbstractValue CreateTainted(ISymbol taintedSymbol, SyntaxNode accessingSyntax, ISymbol accessingMethod) 74internal static TaintedDataAbstractValue MergeTainted(TaintedDataAbstractValue value1, TaintedDataAbstractValue value2) 89internal static TaintedDataAbstractValue MergeTainted(IEnumerable<TaintedDataAbstractValue> taintedValues) 92foreach (TaintedDataAbstractValue value in taintedValues)
src\40daf5e1cab76dff\TaintedDataAbstractValueKind.cs (1)
7/// Kind for <see cref="TaintedDataAbstractValue"/>.
src\40daf5e1cab76dff\TaintedDataAnalysis.CoreTaintedDataAnalysisDataDomain.cs (5)
11private sealed class CoreTaintedDataAnalysisDataDomain : AnalysisEntityMapAbstractDomain<TaintedDataAbstractValue> 18protected override bool CanSkipNewEntry(AnalysisEntity analysisEntity, TaintedDataAbstractValue value) 23protected override TaintedDataAbstractValue GetDefaultValue(AnalysisEntity analysisEntity) 25return TaintedDataAbstractValue.NotTainted; 28protected override void AssertValidEntryForMergedMap(AnalysisEntity analysisEntity, TaintedDataAbstractValue value)
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataAbstractValueDomain.cs (11)
10private sealed class TaintedDataAbstractValueDomain : AbstractValueDomain<TaintedDataAbstractValue> 14public override TaintedDataAbstractValue UnknownOrMayBeValue => TaintedDataAbstractValue.NotTainted; 16public override TaintedDataAbstractValue Bottom => TaintedDataAbstractValue.NotTainted; 18public override int Compare(TaintedDataAbstractValue oldValue, TaintedDataAbstractValue newValue, bool assertMonotonicity) 35public override TaintedDataAbstractValue Merge(TaintedDataAbstractValue value1, TaintedDataAbstractValue value2) 54return TaintedDataAbstractValue.MergeTainted(value1, value2);
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataAnalysisDomain.cs (2)
10private sealed class TaintedDataAnalysisDomain : PredicatedAnalysisDataDomain<TaintedDataAnalysisData, TaintedDataAbstractValue> 12public TaintedDataAnalysisDomain(MapAbstractDomain<AnalysisEntity, TaintedDataAbstractValue> coreDataAnalysisDomain)
src\40daf5e1cab76dff\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (55)
25private sealed class TaintedDataOperationVisitor : AnalysisEntityDataFlowOperationVisitor<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult, TaintedDataAbstractValue> 65protected override TaintedDataAbstractValue GetAbstractDefaultValue(ITypeSymbol? type) 67return TaintedDataAbstractValue.NotTainted; 70protected override TaintedDataAbstractValue GetAbstractValue(AnalysisEntity analysisEntity) 72return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : TaintedDataAbstractValue.NotTainted; 120protected override TaintedDataAbstractValue GetDefaultValueForParameterOnEntry(IParameterSymbol parameter, AnalysisEntity analysisEntity) 144return TaintedDataAbstractValue.CreateTainted(parameter, parameterSyntaxNode, this.OwningSymbol); 150protected override void SetAbstractValue(AnalysisEntity analysisEntity, TaintedDataAbstractValue value) 161private static void SetAbstractValueCore(TaintedDataAnalysisData taintedAnalysisData, AnalysisEntity analysisEntity, TaintedDataAbstractValue value) 174public override TaintedDataAbstractValue DefaultVisit(IOperation operation, object? argument) 182List<TaintedDataAbstractValue>? taintedValues = null; 185TaintedDataAbstractValue childValue = Visit(childOperation, argument); 188taintedValues ??= new List<TaintedDataAbstractValue>(); 202return TaintedDataAbstractValue.MergeTainted(taintedValues); 211public override TaintedDataAbstractValue VisitConversion(IConversionOperation operation, object? argument) 213TaintedDataAbstractValue operandValue = Visit(operation.Operand, argument); 229protected override TaintedDataAbstractValue ComputeAnalysisValueForReferenceOperation(IOperation operation, TaintedDataAbstractValue defaultValue) 235return TaintedDataAbstractValue.CreateTainted(propertyReferenceOperation.Member, propertyReferenceOperation.Syntax, this.OwningSymbol); 240return this.CurrentAnalysisData.TryGetValue(analysisEntity, out TaintedDataAbstractValue? value) ? value : defaultValue; 247public override TaintedDataAbstractValue VisitObjectCreation(IObjectCreationOperation operation, object? argument) 249TaintedDataAbstractValue baseValue = base.VisitObjectCreation(operation, argument); 259public override TaintedDataAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction( 265TaintedDataAbstractValue defaultValue) 268TaintedDataAbstractValue result = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction( 322this.CacheAbstractValue(argumentOperation, TaintedDataAbstractValue.CreateTainted(argumentOperation.Parameter, argumentOperation.Syntax, method)); 331result = TaintedDataAbstractValue.CreateTainted(method, originalOperation.Syntax, this.OwningSymbol); 372SetTaintedForEntity(visitedInstance, TaintedDataAbstractValue.NotTainted); 385result = TaintedDataAbstractValue.NotTainted; 393result = TaintedDataAbstractValue.NotTainted; 400SetTaintedForEntity(thenSanitizedTargetOperation, TaintedDataAbstractValue.NotTainted); 421public override TaintedDataAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue) 424TaintedDataAbstractValue baseValue = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue); 435public override TaintedDataAbstractValue VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, TaintedDataAbstractValue defaultValue) 438TaintedDataAbstractValue baseValue = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue); 456protected override TaintedDataAbstractValue ComputeAnalysisValueForEscapedRefOrOutArgument( 459TaintedDataAbstractValue defaultValue) 467TaintedDataAbstractValue returnValueAbstractValue = this.GetCachedAbstractValue(invocationOperation); 478public override TaintedDataAbstractValue VisitArrayInitializer(IArrayInitializerOperation operation, object? argument) 481TaintedDataAbstractValue baseAbstractValue = base.VisitArrayInitializer(operation, argument); 487IEnumerable<TaintedDataAbstractValue> taintedAbstractValues = 489.Select<IOperation, TaintedDataAbstractValue>(this.GetCachedAbstractValue) 496TaintedDataAbstractValue? result = null; 499result = TaintedDataAbstractValue.MergeTainted(taintedAbstractValues); 507TaintedDataAbstractValue taintedDataAbstractValue = TaintedDataAbstractValue.CreateTainted(arrayTypeSymbol, arrayCreationOperation.Syntax, this.OwningSymbol); 508result = result == null ? taintedDataAbstractValue : TaintedDataAbstractValue.MergeTainted(result, taintedDataAbstractValue); 521protected override TaintedDataAbstractValue VisitAssignmentOperation(IAssignmentOperation operation, object? argument) 523TaintedDataAbstractValue taintedDataAbstractValue = base.VisitAssignmentOperation(operation, argument); 570TaintedDataAbstractValue abstractValue = this.GetCachedAbstractValue(taintedArgument); 598TaintedDataAbstractValue assignmentValueAbstractValue = this.GetCachedAbstractValue(assignmentOperation.Value); 761private void SetTaintedForEntity(IOperation operation, TaintedDataAbstractValue value)
src\40daf5e1cab76dff\TaintedDataAnalysisContext.cs (5)
17using InterproceduralTaintedDataAnalysisData = InterproceduralAnalysisData<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAbstractValue>; 20internal sealed class TaintedDataAnalysisContext : AbstractDataFlowAnalysisContext<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult, TaintedDataAbstractValue> 23AbstractValueDomain<TaintedDataAbstractValue> valueDomain, 65AbstractValueDomain<TaintedDataAbstractValue> valueDomain, 150protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult, TaintedDataAbstractValue> obj)
src\40daf5e1cab76dff\TaintedDataAnalysisData.cs (11)
11internal sealed class TaintedDataAnalysisData : AnalysisEntityBasedPredicateAnalysisData<TaintedDataAbstractValue> 18public TaintedDataAnalysisData(IDictionary<AnalysisEntity, TaintedDataAbstractValue> fromData) 28public TaintedDataAnalysisData(TaintedDataAnalysisData fromData, TaintedDataAnalysisData data, MapAbstractDomain<AnalysisEntity, TaintedDataAbstractValue> coreDataAnalysisDomain) 33protected override AbstractValueDomain<TaintedDataAbstractValue> ValueDomain => TaintedDataAnalysis.ValueDomainInstance; 34public override AnalysisEntityBasedPredicateAnalysisData<TaintedDataAbstractValue> Clone() 39public override int Compare(AnalysisEntityBasedPredicateAnalysisData<TaintedDataAbstractValue> other, MapAbstractDomain<AnalysisEntity, TaintedDataAbstractValue> coreDataAnalysisDomain) 44public override AnalysisEntityBasedPredicateAnalysisData<TaintedDataAbstractValue> WithMergedData(AnalysisEntityBasedPredicateAnalysisData<TaintedDataAbstractValue> data, MapAbstractDomain<AnalysisEntity, TaintedDataAbstractValue> coreDataAnalysisDomain) 49public void Reset(TaintedDataAbstractValue resetValue)
src\40daf5e1cab76dff\TaintedDataAnalysisResult.cs (2)
12internal sealed class TaintedDataAnalysisResult : DataFlowAnalysisResult<TaintedDataBlockAnalysisResult, TaintedDataAbstractValue> 15DataFlowAnalysisResult<TaintedDataBlockAnalysisResult, TaintedDataAbstractValue> dataFlowAnalysisResult,
src\40daf5e1cab76dff\TaintedDataBlockAnalysisResult.cs (2)
15public ImmutableDictionary<AnalysisEntity, TaintedDataAbstractValue> Data { get; } 20Data = blockAnalysisData?.CoreAnalysisData.ToImmutableDictionary() ?? ImmutableDictionary<AnalysisEntity, TaintedDataAbstractValue>.Empty;
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.cs (3)
18internal partial class TaintedDataAnalysis : ForwardDataFlowAnalysis<TaintedDataAnalysisData, TaintedDataAnalysisContext, TaintedDataAnalysisResult, TaintedDataBlockAnalysisResult, TaintedDataAbstractValue> 20internal static readonly AbstractValueDomain<TaintedDataAbstractValue> ValueDomainInstance = TaintedDataAbstractValueDomain.Default; 128DataFlowAnalysisResult<TaintedDataBlockAnalysisResult, TaintedDataAbstractValue> dataFlowAnalysisResult)