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