From f809313dc5a742d48d33a776183f6aa4e5fa9716 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Mar 2019 19:42:10 +0530 Subject: [PATCH] py3: Couple of fixes for individual byte access in the xz module --- src/lzma/xz.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lzma/xz.py b/src/lzma/xz.py index e4ae35f562..5237db1de1 100644 --- a/src/lzma/xz.py +++ b/src/lzma/xz.py @@ -51,7 +51,7 @@ def decode_var_int(f): def decode_var_int2(raw, pos): ans, ch, opos = 0, 0x80, pos while ch >= 0x80: - ch = ord(raw[pos]) + ch = ord(raw[pos:pos+1]) if ch == 0: return 0, pos ans |= (ch & 0x7f) << ((pos - opos) * 7) @@ -235,7 +235,7 @@ def read_block_header(f, block_header_size_, check_type): ) if crc != crc32(block_header_size_ + header): raise InvalidXZ('Block header CRC mismatch') - block_flags = ord(header[0]) + block_flags = ord(header[0:1]) number_of_filters = (0x03 & block_flags) + 1 if not (0 < number_of_filters <= 4): raise InvalidXZ('Invalid number of filters: %d' % number_of_filters)