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 <avnish@linux.ibm.com>
Reviewed-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Avnish Chouhan 2025-11-10 20:27:19 +05:30 committed by Daniel Kiper
parent 3a66437054
commit f0170c2177

View 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);