From: Lasse Collin Date: Thu, 13 Jan 2011 01:01:17 +0000 (-0800) Subject: Decompressors: fix header validation in decompress_unlzma.c X-Git-Tag: upstream/snapshot3+hdmi~11924 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8218a437234309faa5725f82c33c3523788d5f68;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git 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 Cc: "H. Peter Anvin" Cc: Alain Knaff Cc: Albin Tonnerre Cc: Phillip Lougher Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c index 4817359..696c34a 100644 --- a/lib/decompress_unlzma.c +++ b/lib/decompress_unlzma.c @@ -574,8 +574,10 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len, ((unsigned char *)&header)[i] = *rc.ptr++; } - if (header.pos >= (9 * 5 * 5)) + if (header.pos >= (9 * 5 * 5)) { error("bad header"); + goto exit_1; + } mi = 0; lc = header.pos;