diff options
-rw-r--r-- | Lib/test/test_bz2.py | 8 | ||||
-rw-r--r-- | Modules/bz2module.c | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py index 28af42e..06293f5 100644 --- a/Lib/test/test_bz2.py +++ b/Lib/test/test_bz2.py @@ -65,6 +65,14 @@ class BZ2FileTest(BaseTest): self.assertEqual(bz2f.read(), self.TEXT) bz2f.close() + def testRead0(self): + # Test BBZ2File.read(0)" + self.createTempFile() + bz2f = BZ2File(self.filename) + self.assertRaises(TypeError, bz2f.read, None) + self.assertEqual(bz2f.read(0), b"") + bz2f.close() + def testReadChunk10(self): # "Test BZ2File.read() in chunks of 10 bytes" self.createTempFile() diff --git a/Modules/bz2module.c b/Modules/bz2module.c index ee2186e..954c914 100644 --- a/Modules/bz2module.c +++ b/Modules/bz2module.c @@ -431,7 +431,7 @@ BZ2File_read(BZ2FileObject *self, PyObject *args) goto cleanup; } ret = PyBytes_FromStringAndSize((char *)NULL, buffersize); - if (ret == NULL) + if (ret == NULL || buffersize == 0) goto cleanup; bytesread = 0; |