Commit 931d5c36 authored by Joe Perches's avatar Joe Perches Committed by Andrew Morton
Browse files

checkpatch: add an invalid patch separator test

Some versions of tools that apply patches incorrectly allow lines that
start with 3 dashes and have additional content on the same line.

Checkpatch will now emit an ERROR on these lines and optionally convert
those lines from dashes to equals with --fix.

Link: https://lkml.kernel.org/r/6ec1ed08328340db42655287afd5fa4067316b11.camel@perches.com


Signed-off-by: default avatarJoe Perches <joe@perches.com>
Suggested-by: default avatarIan Rogers <irogers@google.com>
Cc: Andy Whitcroft <apw@canonical.com>
Cc: Dwaipayan Ray <dwaipayanray1@gmail.com>
Cc: Kuan-Wei Chiu <visitorckw@gmail.com>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Cc: Namhyung kim <namhyung@kernel.org>
Cc: Stehen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 2eec08ff
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -601,6 +601,11 @@ Commit message

    See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#describe-your-changes

  **BAD_COMMIT_SEPARATOR**
    The commit separator is a single line with 3 dashes.
    The regex match is '^---$'
    Lines that start with 3 dashes and have more content on the same line
    may confuse tools that apply patches.

Comparison style
----------------
+10 −0
Original line number Diff line number Diff line
@@ -3031,6 +3031,16 @@ sub process {
			}
		}

# Check for invalid patch separator
		if ($in_commit_log &&
		    $line =~ /^---.+/) {
			if (ERROR("BAD_COMMIT_SEPARATOR",
				  "Invalid commit separator - some tools may have problems applying this\n" . $herecurr) &&
			    $fix) {
				$fixed[$fixlinenr] =~ s/-/=/g;
			}
		}

# Check for patch separator
		if ($line =~ /^---$/) {
			$has_patch_separator = 1;