summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-10-01 02:45:17 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-10-01 02:45:17 (GMT)
commit38317d3318e05832a864d413aa744a48a8975dce (patch)
tree8757c1d2116ed1d20aa28b02e0b11f05e9bc3412 /Lib
parent34b9d14be642be80e9ac10c59004570a7efa5804 (diff)
downloadcpython-38317d3318e05832a864d413aa744a48a8975dce.zip
cpython-38317d3318e05832a864d413aa744a48a8975dce.tar.gz
cpython-38317d3318e05832a864d413aa744a48a8975dce.tar.bz2
Issue #28275: Clean up to avoid use-after-free after bzip decompress failure
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_bz2.py6
-rw-r--r--Lib/test/test_lzma.py8
2 files changed, 9 insertions, 5 deletions
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index a1e4b8d..478921a 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -821,6 +821,12 @@ class BZ2DecompressorTest(BaseTest):
out.append(bzd.decompress(self.DATA[300:]))
self.assertEqual(b''.join(out), self.TEXT)
+ def test_failure(self):
+ bzd = BZ2Decompressor()
+ self.assertRaises(Exception, bzd.decompress, self.BAD_DATA * 30)
+ # Previously, a second call could crash due to internal inconsistency
+ self.assertRaises(Exception, bzd.decompress, self.BAD_DATA * 30)
+
class CompressDecompressTest(BaseTest):
def testCompress(self):
data = bz2.compress(self.TEXT)
diff --git a/Lib/test/test_lzma.py b/Lib/test/test_lzma.py
index afd2767..16e89d5 100644
--- a/Lib/test/test_lzma.py
+++ b/Lib/test/test_lzma.py
@@ -249,11 +249,9 @@ class CompressorDecompressorTestCase(unittest.TestCase):
def test_decompressor_bug_28275(self):
# Test coverage for Issue 28275
lzd = LZMADecompressor()
- for i in range(2):
- try:
- lzd.decompress(COMPRESSED_RAW_1)
- except LZMAError:
- pass
+ self.assertRaises(LZMAError, lzd.decompress, COMPRESSED_RAW_1)
+ # Previously, a second call could crash due to internal inconsistency
+ self.assertRaises(LZMAError, lzd.decompress, COMPRESSED_RAW_1)
# Test that LZMACompressor->LZMADecompressor preserves the input data.