diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2006-07-30 03:03:12 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-31 13:28:37 -0700 |
commit | 31925c8857ba17c11129b766a980ff7c87780301 (patch) | |
tree | a82ee8700076f19072780341c0aab35cee61b7eb /lib/zlib_inflate/inflate.c | |
parent | 163ecdff060f2fa9e8f5238882fd0137493556a6 (diff) | |
download | lwn-31925c8857ba17c11129b766a980ff7c87780301.tar.gz lwn-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/inflate.c')
-rw-r--r-- | lib/zlib_inflate/inflate.c | 5 |
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; |