[U-Boot] [PATCH] Fix gunzip to work for any gzipped uImage size Signed-off-by: Catalin Radu <Catalin at VirtualMetrix.com>
Sergei Shtylyov
sshtylyov at mvista.com
Thu Feb 3 13:57:01 CET 2011
Hello.
On 02-02-2011 19:41, Catalin Radu wrote:
> diff --git a/lib/gunzip.c b/lib/gunzip.c
> index 482a476..18cb45b 100644
> --- a/lib/gunzip.c
> +++ b/lib/gunzip.c
> @@ -106,12 +106,16 @@ int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
> s.avail_in = *lenp - offset;
> s.next_out = dst;
> s.avail_out = dstlen;
> - r = inflate(&s, Z_FINISH);
> - if ((r != Z_STREAM_END)&& (stoponerr==1)) {
> - printf ("Error: inflate() returned %d\n", r);
> - inflateEnd(&s);
> - return (-1);
> - }
> + do {
> + r = inflate(&s, Z_FINISH);
> + if ((r != Z_STREAM_END)&& (r != Z_BUF_ERROR)&& (stoponerr==1)) {
> + printf ("Error: inflate() returned %d\n", r);
> + inflateEnd(&s);
> + return (-1);
> + }
> + s.avail_in = *lenp - offset - (int)(s.next_out - (unsigned char*)dst);
> + s.avail_out = dstlen;
> + } while (r == Z_BUF_ERROR);
Don't use spaces for indenting, only tabs.
WBR, Sergei
More information about the U-Boot
mailing list