Commit 8218a437 authored by Lasse Collin's avatar Lasse Collin Committed by Linus Torvalds

Decompressors: fix header validation in decompress_unlzma.c

Validation of header.pos calls error() but doesn't make the function
return to indicate an error to the caller.  Instead the decoding is
attempted with invalid header.pos.  This fixes it.
Signed-off-by: default avatarLasse Collin <lasse.collin@tukaani.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Alain Knaff <alain@knaff.lu>
Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com>
Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 22e44208
...@@ -574,8 +574,10 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len, ...@@ -574,8 +574,10 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
((unsigned char *)&header)[i] = *rc.ptr++; ((unsigned char *)&header)[i] = *rc.ptr++;
} }
if (header.pos >= (9 * 5 * 5)) if (header.pos >= (9 * 5 * 5)) {
error("bad header"); error("bad header");
goto exit_1;
}
mi = 0; mi = 0;
lc = header.pos; lc = header.pos;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment