Fix stupid bugs in flush marker detection.

This commit is contained in:
Lasse Collin 2008-01-04 21:37:01 +02:00
parent 0029cbbabe
commit fc67f79f60
1 changed files with 4 additions and 3 deletions

View File

@ -488,14 +488,14 @@ decode_real(lzma_coder *restrict coder, const uint8_t *restrict in,
// flush marker or the beginning of the stream. // flush marker or the beginning of the stream.
// This is to prevent hanging the decoder with // This is to prevent hanging the decoder with
// malicious input files. // malicious input files.
if (!coder->has_produced_output) if (!has_produced_output)
return true; return true;
coder->has_produced_output = false; has_produced_output = false;
rc_reset(rc); rc_reset(rc);
if (!rc_read_init(&rc, in, &in_pos_local, in_size)) if (!rc_read_init(&rc, in, &in_pos_local, in_size))
break; goto out; // Avoiding rc_normalize()
} else { } else {
return true; return true;
@ -622,6 +622,7 @@ decode_real(lzma_coder *restrict coder, const uint8_t *restrict in,
// Update the *data structure. // // Update the *data structure. //
///////////////////////////////// /////////////////////////////////
out:
// Range decoder // Range decoder
rc_from_local(coder->rc); rc_from_local(coder->rc);