tools: patman: Handle missing 'END' in non-last commit of a series
authorBin Meng <bmeng.cn@gmail.com>
Mon, 27 Jun 2016 06:24:32 +0000 (23:24 -0700)
committerSimon Glass <sjg@chromium.org>
Mon, 11 Jul 2016 20:06:44 +0000 (14:06 -0600)
The following python error:

Traceback (most recent call last):
  File "./tools/patman/patman", line 144, in <module>
    series = patchstream.FixPatches(series, args)
  File "./tools/patman/patchstream.py", line 477, in FixPatches
    commit = series.commits[count]
IndexError: list index out of range

is seen when:

- 'END' is missing in those tags
- those tags are put in the last part in a commit message
- the commit is not the last commit of the series

Add testing logic to see if a new commit starts.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
tools/patman/patchstream.py

index 0612612372fc484a7a022c763f4992df5de86bc6..69d5cfb7a8ea8fc66572180d02334e5a8b7d8654 100644 (file)
@@ -177,9 +177,10 @@ class PatchStream:
         elif commit_match:
             self.state = STATE_MSG_HEADER
 
-        # If a tag is detected
+        # If a tag is detected, or a new commit starts
         if series_tag_match or commit_tag_match or \
-           cover_match or cover_cc_match or signoff_match:
+           cover_match or cover_cc_match or signoff_match or \
+           self.state == STATE_MSG_HEADER:
             # but we are already in a section, this means 'END' is missing
             # for that section, fix it up.
             if self.in_section: