]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
disk/ieee1275/ofdisk: Fix memory leaks
authorAvnish Chouhan <avnish@linux.ibm.com>
Mon, 1 Dec 2025 09:41:23 +0000 (15:11 +0530)
committerDaniel Kiper <daniel.kiper@oracle.com>
Sun, 21 Dec 2025 15:41:46 +0000 (16:41 +0100)
In case of an overflow "p" and "p->grub_devpath" will not be freed.
Fix both issues.

Signed-off-by: Avnish Chouhan <avnish@linux.ibm.com>
Reviewed-by: Alec Brown <alec.r.brown@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
grub-core/disk/ieee1275/ofdisk.c

index dbc0f1abad59cf430dcd33664cad54c27a1e56c5..f4624a4ad0708fc017ec9b8f40f553b902a0659e 100644 (file)
@@ -93,6 +93,7 @@ ofdisk_hash_add_real (char *devpath)
       grub_add (sz, sizeof ("ieee1275/"), &sz))
     {
       grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow detected while obtaining size of device path"));
+      grub_free (p);
       return NULL;
     }
 
@@ -109,6 +110,8 @@ ofdisk_hash_add_real (char *devpath)
       if (grub_add (grub_strlen (p->devpath), 3, &sz))
        {
          grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow detected while obtaining size of an open path"));
+         grub_free (p->grub_devpath);
+         grub_free (p);
          return NULL;
        }