Example #1
0
        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();