summaryrefslogtreecommitdiffstats
path: root/lib/zlib_inflate
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2006-07-30 03:03:12 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-31 13:28:37 -0700
commit31925c8857ba17c11129b766a980ff7c87780301 (patch)
treea82ee8700076f19072780341c0aab35cee61b7eb /lib/zlib_inflate
parent163ecdff060f2fa9e8f5238882fd0137493556a6 (diff)
downloadlinux-31925c8857ba17c11129b766a980ff7c87780301.tar.gz
linux-31925c8857ba17c11129b766a980ff7c87780301.tar.bz2
linux-31925c8857ba17c11129b766a980ff7c87780301.zip
[PATCH] Fix ppc32 zImage inflate
The recent zlib update (commit 4f3865fb57a04db7cca068fed1c15badc064a302) broke ppc32 zImage decompression as it tries to decompress to address zero and the updated zlib_inflate checks that strm->next_out isn't a null pointer. This little patch fixes it. [rpurdie@rpsys.net: add comment] Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Acked-by: Tom Rini <trini@kernel.crashing.org> Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'lib/zlib_inflate')
-rw-r--r--lib/zlib_inflate/inflate.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/zlib_inflate/inflate.c b/lib/zlib_inflate/inflate.c
index 7f922dccf1a5..fceb97c3aff7 100644
--- a/lib/zlib_inflate/inflate.c
+++ b/lib/zlib_inflate/inflate.c
@@ -347,7 +347,10 @@ int zlib_inflate(z_streamp strm, int flush)
static const unsigned short order[19] = /* permutation of code lengths */
{16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
- if (strm == NULL || strm->state == NULL || strm->next_out == NULL ||
+ /* Do not check for strm->next_out == NULL here as ppc zImage
+ inflates to strm->next_out = 0 */
+
+ if (strm == NULL || strm->state == NULL ||
(strm->next_in == NULL && strm->avail_in != 0))
return Z_STREAM_ERROR;