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: Lasse 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
22e4420820
commit
8218a43723
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue