From: Dr. David von Oheimb Date: Tue, 10 Mar 2020 07:12:57 +0000 (+0100) Subject: fix false positive of check-format.pl regarding '#if' on preceding line; extend negat... X-Git-Tag: openssl-3.0.0-alpha1~242 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=90a7c90500ddb3c29eff988a8840ffc1e3e44e7a;p=oweals%2Fopenssl.git fix false positive of check-format.pl regarding '#if' on preceding line; extend negative tests Reviewed-by: Richard Levitte Reviewed-by: David von Oheimb (Merged from https://github.com/openssl/openssl/pull/11285) --- diff --git a/util/check-format-test-negatives.c b/util/check-format-test-negatives.c index c9f781e06b..35cbd75ba3 100644 --- a/util/check-format-test-negatives.c +++ b/util/check-format-test-negatives.c @@ -113,7 +113,46 @@ int f(void) /* 5; else 6; + + if (1) { + if (2) { + case MAC_TYPE_MAC: + { + EVP_MAC_CTX *new_mac_ctx; + + if (ctx->pkey == NULL) + return 0; + } + break; + default: + /* This should be dead code */ + return 0; + } + } + if (expr_line1 + == expr_line2 + && expr_line3) { + c1; + } else { + c; + d; + } + if (expr_line1 + == expr_line2 + && expr_line3) + hanging_stmt; } + +const OPTIONS passwd_options[] = { + {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"}, +#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0) + {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"}, +#endif + OPT_R_OPTIONS, + + {NULL} +}; + typedef * d(int) x; typedef (int) diff --git a/util/check-format.pl b/util/check-format.pl index a0b493e600..b7c28f15ef 100755 --- a/util/check-format.pl +++ b/util/check-format.pl @@ -1001,7 +1001,7 @@ while (<>) { # loop over all lines of all input files # check for opening brace after if/while/for/switch/do not on same line # note that "no '{' on same line after '} else'" is handled further below if (/^[\s@]*{/ && # leading '{' - $line_before > 0 && + $line_before > 0 && !($contents_before_ =~ m/^\s*#/) && # not preprocessor directive '#if (my ($head, $mid, $tail) = ($contents_before_ =~ m/(^|^.*\W)(if|while|for|switch|do)(\W.*$|$)/))) { my $brace_after = $tail =~ /^[\s@]*{/; # any whitespace or comments then '{' report("'{' not on same line as preceding '$mid'") if !$brace_after;