Messages in this thread Patch in this message | | | From | Bruce Allan <> | Subject | [PATCH] checkpatch: warn when patch exceeds a maximum message size | Date | Thu, 05 Jun 2014 17:00:37 -0700 |
| |
Patch submissions which exceed a maximum message size imposed by email list servers can be silently blocked. Warn when a patch message exceeds the maximum message size (100,000 characters) allowed by Majordomo at vger.kernel.org since that is where most Linux email lists are served. Also provide a command-line option to specify a different maximum size.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> ---
scripts/checkpatch.pl | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 34eb216..79bd7fd6 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -40,6 +40,7 @@ my @ignore = (); my $help = 0; my $configuration_file = ".checkpatch.conf"; my $max_line_length = 80; +my $max_msg_size = 100000; # Max allowed by Majordomo at vger.kernel.org my $ignore_perl_version = 0; my $minimum_perl_version = 5.10.0; @@ -62,6 +63,7 @@ Options: --types TYPE(,TYPE2...) show only these comma separated message types --ignore TYPE(,TYPE2...) ignore various comma separated message types --max-line-length=n set the maximum line length, if exceeded, warn + --max-msg-size=n set the maximum message size, if exceeded, warn --show-types show the message "types" in the output --root=PATH PATH to the kernel tree root --no-summary suppress the per-file summary @@ -130,6 +132,7 @@ GetOptions( 'types=s' => \@use, 'show-types!' => \$show_types, 'max-line-length=i' => \$max_line_length, + 'max-msg-size=i' => \$max_msg_size, 'root=s' => \$root, 'summary!' => \$summary, 'mailback!' => \$mailback, @@ -4600,6 +4603,18 @@ sub process { exit(0); } + # Warn if patch exceeds the maximum message size + if (!$file) { + my $cnt_chars = 0; + foreach my $rawline (@rawlines) { + $cnt_chars += length($rawline) + 1; + } + if ($cnt_chars > $max_msg_size) { + WARN("PATCH_TOO_LARGE", + "patch exceeds maximum message size ($max_msg_size) and might be blocked by email list server(s).\n"); + } + } + if (!$is_patch) { ERROR("NOT_UNIFIED_DIFF", "Does not appear to be a unified-diff format patch\n");
| |