diff mbox series

[v3,6/8] gzip: move output buffer into gunzip state

Message ID 20240424163422.23276-7-dpsmith@apertussolutions.com (mailing list archive)
State New, archived
Headers show
Series Clean up of gzip decompressor | expand

Commit Message

Daniel P. Smith April 24, 2024, 4:34 p.m. UTC
Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/common/gzip/gunzip.c  | 7 ++++---
 xen/common/gzip/inflate.c | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

Comments

Jan Beulich April 29, 2024, 3:07 p.m. UTC | #1
On 24.04.2024 18:34, Daniel P. Smith wrote:
> --- a/xen/common/gzip/gunzip.c
> +++ b/xen/common/gzip/gunzip.c
> @@ -15,6 +15,8 @@ struct gunzip_state {
>      size_t insize;
>      /* Index of next byte to be processed in inbuf: */
>      unsigned int inptr;
> +
> +    unsigned long bytes_out;
>  };

The conversion to unsigned long from ...

> @@ -42,7 +44,6 @@ typedef unsigned long   ulg;
>  #  define Tracecv(c, x)
>  #endif
>  
> -static long __initdata bytes_out;

... this originally wants justifying in the (then no longer empty) description.
It's not a lot that needs saying, but such a type change cannot go entirely
silently.

Jan
diff mbox series

Patch

diff --git a/xen/common/gzip/gunzip.c b/xen/common/gzip/gunzip.c
index 3fb9589b069e..95d924d36726 100644
--- a/xen/common/gzip/gunzip.c
+++ b/xen/common/gzip/gunzip.c
@@ -15,6 +15,8 @@  struct gunzip_state {
     size_t insize;
     /* Index of next byte to be processed in inbuf: */
     unsigned int inptr;
+
+    unsigned long bytes_out;
 };
 
 #define malloc(a)       xmalloc_bytes(a)
@@ -42,7 +44,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)
@@ -80,7 +81,7 @@  static __init void flush_window(struct gunzip_state *s)
     }
     crc = c;
 
-    bytes_out += (unsigned long)s->wp;
+    s->bytes_out += (unsigned long)s->wp;
     s->wp = 0;
 }
 
@@ -113,7 +114,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 f1a3b04cef8f..bec8801df487 100644
--- a/xen/common/gzip/inflate.c
+++ b/xen/common/gzip/inflate.c
@@ -1196,7 +1196,7 @@  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;
     }