The test program submitted did not show the bug (which nevertheless
exists). So here is a patch for the test program, plus a patch to fix
the bug.
--- bzip2test.orig	2008-05-21 23:25:24.000000000 +0200
+++ bzip2test	2008-05-21 23:25:19.000000000 +0200
@@ -36,12 +36,12 @@
         print "Error reading from '$file': $!";
         close SOURCE;
     }
-    last if $bytesread == 0;
     my $byteswritten = $bz->bzwrite($buffer);
     if ($byteswritten < $bytesread) {
         print "Error bzwriting to temporary file: " . $bz->bzerror;
         close SOURCE;
     }
+    last if $bytesread == 0;
 }
 
 my $bzflush = $bz->bzflush(BZ_FINISH);
--- libcompress-bzip2-perl-2.09.orig/Bzip2.xs
+++ libcompress-bzip2-perl-2.09/Bzip2.xs
@@ -1485,8 +1485,6 @@
     return -2;
   }
 
-  if (nUncompressed == 0) return 0;
-
   while (True) {
     if ( obj->run_progress == 0 ) {
       ret = BZ2_bzCompressInit ( &(obj->strm), obj->blockSize100k, obj->verbosity, obj->workFactor );
@@ -2253,12 +2251,10 @@
     else
       bufp = SvPV(buf, len);
 
-    if (len) {
-      RETVAL = bzfile_write( obj, bufp, len);
+    RETVAL = bzfile_write( obj, bufp, len);
 
-      if ( RETVAL > 0 )
+    if ( RETVAL > 0 )
 	SvCUR_set( buf, RETVAL );
-    }
   }
 
   OUTPUT:
--- libcompress-bzip2-perl-2.09.orig/debian/changelog
+++ libcompress-bzip2-perl-2.09/debian/changelog
@@ -0,0 +1,26 @@
+libcompress-bzip2-perl (2.09-1.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Fix bug compressing empty files (closes: #464205)
+
+ -- Jeffrey Ratcliffe <[EMAIL PROTECTED]>  Wed, 21 May 2008 20:55:33 +0200
+
 libcompress-bzip2-perl (2.09-1.1) unstable; urgency=low
 
   * Non-maintainer upload.

Reply via email to