aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/lzma/lzma_decoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/liblzma/lzma/lzma_decoder.c')
-rw-r--r--src/liblzma/lzma/lzma_decoder.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/liblzma/lzma/lzma_decoder.c b/src/liblzma/lzma/lzma_decoder.c
index 037985ce..90531c8d 100644
--- a/src/liblzma/lzma/lzma_decoder.c
+++ b/src/liblzma/lzma/lzma_decoder.c
@@ -488,14 +488,14 @@ decode_real(lzma_coder *restrict coder, const uint8_t *restrict in,
// flush marker or the beginning of the stream.
// This is to prevent hanging the decoder with
// malicious input files.
- if (!coder->has_produced_output)
+ if (!has_produced_output)
return true;
- coder->has_produced_output = false;
+ has_produced_output = false;
rc_reset(rc);
if (!rc_read_init(&rc, in, &in_pos_local, in_size))
- break;
+ goto out; // Avoiding rc_normalize()
} else {
return true;
@@ -622,6 +622,7 @@ decode_real(lzma_coder *restrict coder, const uint8_t *restrict in,
// Update the *data structure. //
/////////////////////////////////
+out:
// Range decoder
rc_from_local(coder->rc);