]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
disk/ldm: Fix resource leak
authorAlec Brown <alec.r.brown@oracle.com>
Wed, 10 Nov 2021 20:49:29 +0000 (15:49 -0500)
committerDaniel Kiper <daniel.kiper@oracle.com>
Mon, 22 Nov 2021 15:09:57 +0000 (16:09 +0100)
Commit 23e39f50ca7a (disk/ldm: Make sure comp data is freed before exiting from
make_vg()) fixed several spots in make_vg() where comp data was leaking memory
when an error was being handled but missed one. To avoid leaking memory, comp
should be freed when an error is being handled after comp has been successfully
allocated memory in the for loop.

Fixes: 23e39f50ca7a (disk/ldm: Make sure comp data is freed before exiting from make_vg())
Fixes: CID 73804
Signed-off-by: Alec Brown <alec.r.brown@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/disk/ldm.c

index 4577a51dc5d28b0fd36eda018892cf38359d2f70..337abf7048da7191493f7fcc5acb6e4d288f9ae2 100644 (file)
@@ -487,6 +487,7 @@ make_vg (grub_disk_t disk,
          ptr = vblk[i].dynamic;
          if (ptr + *ptr + 1 >= vblk[i].dynamic + sizeof (vblk[i].dynamic))
            {
+             grub_free (comp);
              goto fail2;
            }
          comp->internal_id = grub_malloc ((grub_size_t) ptr[0] + 2);