[U-Boot] [PATCH] patman: Check commit_match before stripping leading whitespace
Simon Glass
sjg at chromium.org
Sun Sep 28 20:04:53 CEST 2014
Hi Scott,
On 25 September 2014 13:30, Scott Wood <scottwood at freescale.com> wrote:
> True commit lines start at column zero. Anything that is indented
> is part of the commit message instead. I noticed this by trying to
> run buildman with commit e3a4facdfc07179ebe017a07b8de6224a935a9f3
> as master, which contained a reference to a Linux commit inside
> the commit message. ProcessLine saw that as a genuite commit
> line, and thus buildman tried to build it, and died with an
> exception because that SHA is not present in the U-Boot tree.
>
> Signed-off-by: Scott Wood <scottwood at freescale.com>
> ---
> tools/patman/patchstream.py | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
> index d630157..68e98b9 100644
> --- a/tools/patman/patchstream.py
> +++ b/tools/patman/patchstream.py
> @@ -139,6 +139,9 @@ class PatchStream:
> # Initially we have no output. Prepare the input line string
> out = []
> line = line.rstrip('\n')
> +
> + commit_match = re_commit.match(line) if self.is_log else None
> +
> if self.is_log:
> if line[:4] == ' ':
> line = line[4:]
> @@ -146,7 +149,6 @@ class PatchStream:
> # Handle state transition and skipping blank lines
> series_tag_match = re_series_tag.match(line)
> commit_tag_match = re_commit_tag.match(line)
> - commit_match = re_commit.match(line) if self.is_log else None
> cover_cc_match = re_cover_cc.match(line)
> signoff_match = re_signoff.match(line)
> tag_match = None
> --
> 1.9.1
>
Thanks for finding this bug.
This could use a test in tools/patman/test.py
The problem is that you are breaking the patch-processing part of this
code. It operates in two modes - see the comment at the top of
ProcessLine(). With your change it will not process patches correctly,
e.g. to add Commit-notes: to the patch.
Regards,
Simon
More information about the U-Boot
mailing list