private static void CheckPropertyML( Action <Diagnostic> reportDiagnostic, PropertyValueSyntax propValue, string name, string kindName) { // ISSUE: variable of a compiler-generated type CommaSeparatedIdentifierEqualsStringListSyntax stringListSyntax = ((MultilanguagePropertyValueSyntax)propValue).Value; if (stringListSyntax.Values.Count <= 0) { return; } foreach (IdentifierEqualsStringSyntax equalsStringSyntax in stringListSyntax.Values) { Action <Diagnostic> reportDiagnostic1 = reportDiagnostic; // ISSUE: variable of a compiler-generated type StringLiteralValueSyntax stringLiteral = equalsStringSyntax.StringLiteral; string input = stringLiteral != null?SyntaxNodeExtensions.GetLiteralValue(stringLiteral).ToString() : (string)null; Location location = propValue.GetLocation(); string kindName1 = kindName; string name1 = name; EmailAndPhoneNoMustNotBePresentInTheSource.VerifyValue(reportDiagnostic1, input, location, kindName1, name1); } }
private void CheckForHardcodedIpAddresses(SyntaxNodeAnalysisContext context) { StringLiteralValueSyntax stringLiteralValue = context.Node as StringLiteralValueSyntax; string literalValue = null; if (stringLiteralValue != null) { var variableName = GetAssignedVariableName(stringLiteralValue); if (variableName != null && ignoredVariableNames.Any(x => variableName.IndexOf(x, StringComparison.InvariantCultureIgnoreCase) >= 0)) { return; } literalValue = GetValueText(stringLiteralValue); } if (literalValue != null) { if (!IPAddress.TryParse(literalValue, out var address) || IPAddress.IsLoopback(address) || address.GetAddressBytes().All(x => x == 0) || // Nonroutable 0.0.0.0 or 0::0 literalValue == IPv4Broadcast || literalValue.StartsWith("2.5.") || // Looks like OID (address.AddressFamily == AddressFamily.InterNetwork && literalValue.Count(x => x == '.') != IPv4AddressParts - 1)) { return; } } if (stringLiteralValue != null) { ReportHardcodedIpAddress(context, stringLiteralValue.GetLocation(), literalValue); } }
protected string GetAssignedVariableName(StringLiteralValueSyntax stringLiteral) => stringLiteral.FirstAncestorOrSelf <SyntaxNode>(IsVariableIdentifier)?.ToString();
protected string GetValueText(StringLiteralValueSyntax literalExpression) => literalExpression.Value.Value.ToString();