From f0170c21777ef42ec0d011da8a50ee970eae7cdd Mon Sep 17 00:00:00 2001 From: Avnish Chouhan Date: Mon, 10 Nov 2025 20:27:19 +0530 Subject: [PATCH] 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 --- grub-core/kern/ieee1275/openfw.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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);