lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 8 Sep 2022 13:43:25 +0200 From: Niklas Söderlund <niklas.soderlund@...igine.com> To: Dwaipayan Ray <dwaipayanray1@...il.com>, Lukas Bulwahn <lukas.bulwahn@...il.com>, Joe Perches <joe@...ches.com>, Jonathan Corbet <corbet@....net>, Andy Whitcroft <apw@...onical.com>, linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org Cc: oss-drivers@...igine.com, Niklas Söderlund <niklas.soderlund@...igine.com>, Simon Horman <simon.horman@...igine.com>, Louis Peens <louis.peens@...igine.com> Subject: [PATCH v3] checkpatch: warn for non-standard fixes tag style Add a warning for fixes tags that does not fall in line with the standards specified by the community. Signed-off-by: Niklas Söderlund <niklas.soderlund@...igine.com> Reviewed-by: Simon Horman <simon.horman@...igine.com> Reviewed-by: Louis Peens <louis.peens@...igine.com> --- * Changes since v2 - Change the pattern to match on 'fixes:?' to catch more malformed fixes tags. * Changes since v1 - Update the documentation wording and add mention one cause of the message can be that email program splits the tag over multiple lines. --- Documentation/dev-tools/checkpatch.rst | 8 +++++ scripts/checkpatch.pl | 41 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst index b52452bc2963..8c8456a3bd18 100644 --- a/Documentation/dev-tools/checkpatch.rst +++ b/Documentation/dev-tools/checkpatch.rst @@ -612,6 +612,14 @@ Commit message See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes + **BAD_FIXES_TAG** + The Fixes: tag is malformed or does not fall in line with the standards + specified by the community. This can occur if the tag have been split into + multiple lines (e.g., when pasted in email program with word wrapping + enabled). + + See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes + Comparison style ---------------- diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 79e759aac543..a250bda52c66 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3140,6 +3140,47 @@ sub process { } } +# Check Fixes: styles is correct + if (!$in_header_lines && $line =~ /^fixes:?/i) { + my $orig_commit = ""; + my $id = "0123456789ab"; + my $title = "commit title"; + my $tag_case = 1; + my $tag_space = 1; + my $id_length = 1; + my $id_case = 1; + my $title_has_quotes = 0; + + if ($line =~ /(fixes:?)\s+([0-9a-f]{5,})\s+($balanced_parens)/i) { + my $tag = $1; + $orig_commit = $2; + $title = $3; + + $tag_case = 0 if $tag eq "Fixes:"; + $tag_space = 0 if ($line =~ /^fixes:? [0-9a-f]{5,} ($balanced_parens)/i); + + $id_length = 0 if ($orig_commit =~ /^[0-9a-f]{12}$/i); + $id_case = 0 if ($orig_commit !~ /[A-F]/); + + # Always strip leading/trailing parens then double quotes if existing + $title = substr($title, 1, -1); + if ($title =~ /^".*"$/) { + $title = substr($title, 1, -1); + $title_has_quotes = 1; + } + } + + ($id, $title) = git_commit_info($orig_commit, $id, + $title); + + if ($tag_case || $tag_space || $id_length || $id_case || + !$title_has_quotes) { + WARN("BAD_FIXES_TAG", + "Please use correct Fixes: style 'Fixes: <12 chars of sha1> (\"<title line>\")' - ie: 'Fixes: $id (\"$title\")'\n" . $herecurr); + + } + } + # Check email subject for common tools that don't need to be mentioned if ($in_header_lines && $line =~ /^Subject:.*\b(?:checkpatch|sparse|smatch)\b[^:]/i) { -- 2.37.3
Powered by blists - more mailing lists