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/Modules/bz2module.c b/Modules/bz2module.c
index ee2186e..954c914 100644
--- a/Modules/bz2module.c
+++ b/Modules/bz2module.c
@@ -431,7 +431,7 @@
 		goto cleanup;
 	}
 	ret = PyBytes_FromStringAndSize((char *)NULL, buffersize);
-	if (ret == NULL)
+	if (ret == NULL || buffersize == 0)
 		goto cleanup;
 	bytesread = 0;