[PATCH] checkpatch: Add check for common mailing list helper checks

From: John 'Warthog9' Hawley (VMware)
Date: Fri Jul 02 2021 - 18:37:49 EST


From: John 'Warthog9' Hawley <warthog9@xxxxxxxxxxxxxx>

Mailing lists in an attempt to try and avoid sending certain
administrative e-mails to the list, will check the first few lines
(usually ~10) looking for keywords. If those key words are found it
shunts the e-mail to the list admin contact instead of potentially
passing it through to the list.

This adds a known list of the potential things that are checked for, and
while it may search deeper into the message (it goes till it believes
it's into the patch section) than the mailing list software this should
help give some warning if the wrong word is potentially added in the
wrong place in the beginning of a patch message.

Signed-off-by: John 'Warthog9' Hawley (VMware) <warthog9@xxxxxxxxxxxxxx>
---
scripts/checkpatch.pl | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 461d4221e4a4..c2f6e349f304 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2852,6 +2852,40 @@ sub process {

$cnt_lines++ if ($realcnt != 0);

+# check if this may trip up common mailing list helpers to redirect email to the admin contact
+ if ($in_commit_log &&
+ ($line =~ /\bcancel\b/i ||
+ $line =~ /\badd me\b/i ||
+ $line =~ /\bdelete me\b/i ||
+ $line =~ /\bremove\s+me\b/i ||
+ $line =~ /\bchange\b.*\baddress\b/ ||
+ $line =~ /\bsubscribe\b/i ||
+ $line =~ /^sub\b/i ||
+ $line =~ /\bunsubscribe\b/i ||
+ $line =~ /^unsub\b/i ||
+ $line =~ /^\s*help\s*$/i ||
+ $line =~ /^\s*info\s*$/i ||
+ $line =~ /^\s*info\s+\S+\s*$/i ||
+ $line =~ /^\s*lists\s*$/i ||
+ $line =~ /^\s*which\s*$/i ||
+ $line =~ /^\s*which\s+\S+\s*$/i ||
+ $line =~ /^\s*index\s*$/i ||
+ $line =~ /^\s*index\s+\S+\s*$/i ||
+ $line =~ /^\s*who\s*$/i ||
+ $line =~ /^\s*who\s+\S+\s*$/i ||
+ $line =~ /^\s*get\s+\S+\s*$/i ||
+ $line =~ /^\s*get\s+\S+\s+\S+\s*$/i ||
+ $line =~ /^\s*approve\b/i ||
+ $line =~ /^\s*passwd\b/i ||
+ $line =~ /^\s*newinfo\b/i ||
+ $line =~ /^\s*config\b/i ||
+ $line =~ /^\s*newconfig\b/i ||
+ $line =~ /^\s*writeconfig\b/i ||
+ $line =~ /^\s*mkdigest\b/i)){
+ WARN("MAILING LIST HELPER",
+ "Line matches common mailing list helpers, and may not be delivered correctly. Consider rewording (particularly the first word)\n" . $herecurr);
+ }
+
# Verify the existence of a commit log if appropriate
# 2 is used because a $signature is counted in $commit_log_lines
if ($in_commit_log) {
--
2.26.3