mkbootimg: use int for os_version and os_patch_level

The parse_int function attempts to interpret the string to detect
base, which leads to it assuming strings starting with 0 are base
8. This obviously fails for certain dates, so use int instead.

Bug: 27498078
Bug: 22914603
Change-Id: I50b1fb3d7876f2ec17d00649cc9a2d23af2aec2b
(cherry picked from commit 294eb9dac3)
This commit is contained in:
Sami Tolvanen 2016-03-29 16:06:37 -07:00
parent 901be39dc4
commit fa0b90aa79
1 changed files with 5 additions and 5 deletions

View File

@ -102,12 +102,12 @@ def parse_int(x):
def parse_os_version(x):
match = re.search(r'^(\d{1,3})(?:\.(\d{1,3})(?:\.(\d{1,3}))?)?', x)
if match:
a = parse_int(match.group(1))
a = int(match.group(1))
b = c = 0
if match.lastindex >= 2:
b = parse_int(match.group(2))
b = int(match.group(2))
if match.lastindex == 3:
c = parse_int(match.group(3))
c = int(match.group(3))
# 7 bits allocated for each field
assert a < 128
assert b < 128
@ -118,8 +118,8 @@ def parse_os_version(x):
def parse_os_patch_level(x):
match = re.search(r'^(\d{4})-(\d{2})-(\d{2})', x)
if match:
y = parse_int(match.group(1)) - 2000
m = parse_int(match.group(2))
y = int(match.group(1)) - 2000
m = int(match.group(2))
# 7 bits allocated for the year, 4 bits for the month
assert y >= 0 and y < 128
assert m > 0 and m <= 12