BZ2File.read(0) should return b"" rather than raising ValueError.
This fixes test_tarfile.py.
I've added a unit test for the correct bz2 behavior.
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 @@
         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()