lkml.org 
[lkml]   [2020]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] checkpatch: extend author Signed-off-by check for split From: header
    Date
    Checkpatch did not handle cases where the author From: header
    was split into multiple lines. The author identity could not
    be resolved and checkpatch generated a false NO_AUTHOR_SIGN_OFF
    warning.

    A typical example is Commit e33bcbab16d1 ("tee: add support for
    session's client UUID generation"). When checkpatch was run on
    this commit, it displayed:

    "WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal
    patch author ''"

    This was due to split header lines not being handled properly and
    the author himself wrote in Commit cd2614967d8b ("checkpatch: warn
    if missing author Signed-off-by"):

    "Split From: headers are not fully handled: only the first part
    is compared."

    Support split From: headers by correctly parsing the header
    extension lines. RFC 2822, Section-2.2.3 stated that each extended
    line must start with a WSP character (a space or htab). The solution
    was therefore to concatenate the lines which start with a WSP to
    get the correct long header.

    Suggested-by: Joe Perches <joe@perches.com>
    Link: https://lore.kernel.org/linux-kernel-mentees/f5d8124e54a50480b0a9fa638787bc29b6e09854.camel@perches.com/
    Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
    ---
    scripts/checkpatch.pl | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
    index 504d2e431c60..9e65d21456f1 100755
    --- a/scripts/checkpatch.pl
    +++ b/scripts/checkpatch.pl
    @@ -2661,6 +2661,10 @@ sub process {
    # Check the patch for a From:
    if (decode("MIME-Header", $line) =~ /^From:\s*(.*)/) {
    $author = $1;
    + my $curline = $linenr;
    + while(defined($rawlines[$curline]) && ($rawlines[$curline++] =~ /^[ \t]\s*(.*)/)) {
    + $author .= $1;
    + }
    $author = encode("utf8", $author) if ($line =~ /=\?utf-8\?/i);
    $author =~ s/"//g;
    $author = reformat_email($author);
    --
    2.27.0
    \
     
     \ /
      Last update: 2020-09-20 11:17    [W:2.619 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site