]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
kern/ieee1275/openfw: Add missing grub_strdup() failure checks
authorAvnish Chouhan <avnish@linux.ibm.com>
Mon, 10 Nov 2025 14:57:19 +0000 (20:27 +0530)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 18 Nov 2025 11:49:31 +0000 (12:49 +0100)
If grub_strdup() fails, it returns NULL and passing NULL further down to
the code can lead to segmentation fault or an undefined behavior.

Signed-off-by: Avnish Chouhan <avnish@linux.ibm.com>
Reviewed-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/kern/ieee1275/openfw.c

index 11b2beb2ff2e14a7d593665ad5f2fabe6128554b..3b492dd96269e6f7d012f10fa719861e78868854 100644 (file)
@@ -201,6 +201,11 @@ grub_ieee1275_devalias_next (struct grub_ieee1275_devalias *alias)
          alias->path = 0;
        }
       tmp = grub_strdup (alias->name);
+      if (tmp == NULL)
+        {
+          grub_ieee1275_devalias_free (alias);
+          return 0;
+        }
       if (grub_ieee1275_next_property (alias->parent_dev, tmp,
                                       alias->name) <= 0)
        {
@@ -432,9 +437,15 @@ grub_ieee1275_parse_args (const char *path, enum grub_ieee1275_parse_type ptype)
          ret = grub_strdup (args);
        else
          ret = grub_strndup (args, (grub_size_t)(comma - args));
-       /* Consistently provide numbered partitions to GRUB.
-          OpenBOOT traditionally uses alphabetical partition
-          specifiers.  */
+
+        if (ret == NULL)
+          return 0;
+
+        /*
+         * Consistently provide numbered partitions to GRUB.
+         * OpenBOOT traditionally uses alphabetical partition
+         * specifiers.
+         */
        if (ret[0] >= 'a' && ret[0] <= 'z')
            ret[0] = '1' + (ret[0] - 'a');
        grub_free (args);