Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 646032e3 authored by Lasse Collin's avatar Lasse Collin Committed by Linus Torvalds
Browse files

XZ decompressor: Fix decoding of empty LZMA2 streams



The old code considered valid empty LZMA2 streams to be corrupt.
Note that a typical empty .xz file has no LZMA2 data at all,
and thus most .xz files having no uncompressed data are handled
correctly even without this fix.

Signed-off-by: default avatarLasse Collin <lasse.collin@tukaani.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3fd9952d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -969,6 +969,9 @@ XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
			 */
			tmp = b->in[b->in_pos++];

			if (tmp == 0x00)
				return XZ_STREAM_END;

			if (tmp >= 0xE0 || tmp == 0x01) {
				s->lzma2.need_props = true;
				s->lzma2.need_dict_reset = false;
@@ -1001,9 +1004,6 @@ XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
						lzma_reset(s);
				}
			} else {
				if (tmp == 0x00)
					return XZ_STREAM_END;

				if (tmp > 0x02)
					return XZ_DATA_ERROR;