Another bug fix for flush marker detection.
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 4 Jan 2008 23:20:24 +0000 (01:20 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 4 Jan 2008 23:20:24 +0000 (01:20 +0200)
src/liblzma/lzma/lzma_decoder.c

index 90531c8..fd57ac8 100644 (file)
@@ -493,9 +493,17 @@ decode_real(lzma_coder *restrict coder, const uint8_t *restrict in,
 
                                                        has_produced_output = false;
 
+                                                       // We know that we have enough input to call
+                                                       // this macro, because it is tested at the
+                                                       // end of decode_dummy().
+                                                       rc_normalize();
+
                                                        rc_reset(rc);
+
+                                                       // If we don't have enough input here, we jump
+                                                       // out of the loop without calling rc_normalize().
                                                        if (!rc_read_init(&rc, in, &in_pos_local, in_size))
-                                                               goto out; // Avoiding rc_normalize()
+                                                               goto out;
 
                                                } else {
                                                        return true;