aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Damien Martin-Guillerez <dmarting@google.com>2015-08-07 15:32:18 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2015-08-10 10:09:20 +0000
commit7c665f5af48c257593fd5f8a17ff1ea9a5228b8c (patch)
tree6db6e9e1420b319b114d6634ba3790e8d2a9b158
parent0648018edabf426347dccdf36afba47650c17657 (diff)
docker_build: Fix archive's AR format alignment
-- MOS_MIGRATED_REVID=100125974
-rw-r--r--tools/build_defs/docker/archive.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/build_defs/docker/archive.py b/tools/build_defs/docker/archive.py
index 0f9c428857..744cbdd971 100644
--- a/tools/build_defs/docker/archive.py
+++ b/tools/build_defs/docker/archive.py
@@ -53,6 +53,9 @@ class SimpleArFile(object):
"""
def __init__(self, f):
+ if f.tell() % 2 != 0:
+ # AR sections are 2 bytes aligned
+ f.read(1)
self.filename = f.read(16).strip()
if self.filename.endswith('/'): # SysV variant
self.filename = self.filename[:-1]
@@ -61,8 +64,9 @@ class SimpleArFile(object):
self.group_id = int(f.read(6).strip())
self.mode = int(f.read(8).strip(), 8)
self.size = int(f.read(10).strip())
- if f.read(2) != '\x60\x0a':
- raise self.ArError('Invalid AR file header')
+ pad = f.read(2)
+ if pad != '\x60\x0a':
+ raise SimpleArFile.ArError('Invalid AR file header')
self.data = f.read(self.size)
MAGIC_STRING = '!<arch>\n'