I think I worked out the problem at last.  It is a bit hard to
reproduce and the crash occurs somewhat after the bug.  Can you see if
this fixes it?


--- orig/src/compress.c
+++ mod/src/compress.c
@@ -301,12 +301,10 @@
 
         goto out;
     } else if (lzo_ret == LZO_E_OUTPUT_OVERRUN) {
-        out_size *= 2;
-        rs_trace("LZO_E_OUTPUT_OVERRUN, trying again with %lu byte buffer",
-                 (unsigned long) out_size);
         if (is_mmapped) {
             if (munmap(out_buf, out_size) == -1) {
-                rs_log_error("munmap (output) failed: %s", strerror(errno));
+                rs_log_error("munmap output to grow failed: %s",
+                             strerror(errno));
                 ret = EXIT_IO_ERROR;
                 goto out;
             }
@@ -315,6 +313,9 @@
             free(out_buf);
         }
         out_buf = 0;
+        out_size *= 2;
+        rs_trace("LZO_E_OUTPUT_OVERRUN, trying again with %lu byte buffer",
+                 (unsigned long) out_size);
         goto try_again_with_a_bigger_buffer;
     } else {
         rs_log_error("LZO1X1 decompression failed: %d", lzo_ret);


-- 
Martin 

Attachment: signature.asc
Description: Digital signature

__ 
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options: 
http://lists.samba.org/mailman/listinfo/distcc

Reply via email to