pack_firmware: Permit ./ in front of archive member names Older firmware archives (e.g., bcs://kevin_fw_8785.94.7.tbz2) appear to have member names that start with "./". No harm in allowing this. BUG=b:216515833 TEST=kevin builds with CL:*4506133 Change-Id: I4f4c79448625fbc68552bea0a6cea862c8e4e154 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/firmware/+/3420997 Tested-by: Jack Rosenthal <jrosenth@chromium.org> Auto-Submit: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jacob Rasmussen <jacobraz@google.com> Commit-Queue: Jacob Rasmussen <jacobraz@google.com>
diff --git a/pack_firmware.py b/pack_firmware.py index 4a7173c..9735c81 100755 --- a/pack_firmware.py +++ b/pack_firmware.py
@@ -669,7 +669,10 @@ if len(members) != 1: raise PackError("Expected 1 member in file '%s' but found %d" % (pathname, len(members))) - if '/' in members[0].name: + name = members[0].name + if name.startswith('./'): + name = name[2:] + if '/' in name: raise PackError("Tar file '%s' member '%s' should be a simple name" % (pathname, members[0].name)) tar.extractall(self._tmpdir, members)