From: Avnish Chouhan Date: Mon, 10 Nov 2025 14:57:19 +0000 (+0530) Subject: kern/ieee1275/openfw: Add missing grub_strdup() failure checks X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0170c21777ef42ec0d011da8a50ee970eae7cdd;p=thirdparty%2Fgrub.git kern/ieee1275/openfw: Add missing grub_strdup() failure checks 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 Reviewed-by: Sudhakar Kuppusamy Reviewed-by: Daniel Kiper --- diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c index 11b2beb2f..3b492dd96 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c @@ -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);