]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
io/gzio: Fix possible use of uninitialized variable in huft_build()
authorDarren Kenny <darren.kenny@oracle.com>
Tue, 26 Oct 2021 15:02:40 +0000 (15:02 +0000)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 2 Nov 2021 15:53:12 +0000 (16:53 +0100)
In huft_build() it is possible to reach the for loop where "r" is being
assigned to "q[j]" without "r.v" ever being initialized.

Fixes: CID 314024
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/io/gzio.c

index aea86a0a9a92daa23f20583903985cb23c35fc9e..10156e569c85e96095d9e06d513176054a9b42ee 100644 (file)
@@ -447,7 +447,7 @@ huft_build (unsigned *b,    /* code lengths in bits (all assumed <= BMAX) */
   int l;                       /* bits per table (returned in m) */
   register unsigned *p;                /* pointer into c[], b[], or v[] */
   register struct huft *q;     /* points to current table */
-  struct huft r;               /* table entry for structure assignment */
+  struct huft r = {0};         /* table entry for structure assignment */
   struct huft *u[BMAX];                /* table stack */
   unsigned v[N_MAX];           /* values in order of bit length */
   register int w;              /* bits before this table == (l * h) */