From: Daniel P. Smith Date: Wed, 24 Apr 2024 16:34:20 +0000 (-0400) Subject: xen/gunzip: Move output count into gunzip_state X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d386a383dd6fe937cbd05ea9502f5e6059ad3036;p=people%2Fandrewcoop%2Fxen.git xen/gunzip: Move output count into gunzip_state Signed-off-by: Daniel P. Smith Acked-by: Andrew Cooper --- diff --git a/xen/common/gzip/gunzip.c b/xen/common/gzip/gunzip.c index a04ddd7445..8770430312 100644 --- a/xen/common/gzip/gunzip.c +++ b/xen/common/gzip/gunzip.c @@ -16,6 +16,8 @@ struct gunzip_state { unsigned int insize; /* Index of next byte to be processed in inbuf: */ unsigned int inptr; + + unsigned long bytes_out; }; #define malloc(a) xmalloc_bytes(a) @@ -43,7 +45,6 @@ typedef unsigned long ulg; # define Tracecv(c, x) #endif -static long __initdata bytes_out; static void flush_window(struct gunzip_state *s); static __init void error(const char *x) @@ -82,7 +83,7 @@ static __init void flush_window(struct gunzip_state *s) } crc = c; - bytes_out += s->wp; + s->bytes_out += s->wp; s->wp = 0; } @@ -115,7 +116,7 @@ __init int perform_gunzip(char *output, char *image, unsigned long image_len) s->inbuf = (unsigned char *)image; s->insize = image_len; s->inptr = 0; - bytes_out = 0; + s->bytes_out = 0; makecrc(); diff --git a/xen/common/gzip/inflate.c b/xen/common/gzip/inflate.c index 62179e6ed6..2d53391e74 100644 --- a/xen/common/gzip/inflate.c +++ b/xen/common/gzip/inflate.c @@ -1210,7 +1210,9 @@ static int __init gunzip(struct gunzip_state *s) error("crc error"); return -1; } - if (orig_len != bytes_out) { + + if ( orig_len != s->bytes_out ) + { error("length error"); return -1; }