From: Vladimir 'phcoder' Serbinenko Date: Sun, 14 Apr 2013 22:40:19 +0000 (+0200) Subject: * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_devalias_next): Make X-Git-Tag: grub-2.02-beta1~1149 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cbe57a487bad858471a2f6ed43b2186bd8b0a77a;p=thirdparty%2Fgrub.git * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_devalias_next): Make source and destination differ. --- diff --git a/ChangeLog b/ChangeLog index b37266844..74690301f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-04-15 Vladimir Serbinenko + + * grub-core/kern/ieee1275/openfw.c (grub_ieee1275_devalias_next): Make + source and destination differ. + 2013-04-15 Vladimir Serbinenko * grub-core/disk/ieee1275/ofdisk.c: Fix CD-ROM and boot device diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c index 90c092c72..07c90f7cb 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c @@ -193,18 +193,22 @@ grub_ieee1275_devalias_next (struct grub_ieee1275_devalias *alias) { grub_ssize_t pathlen; grub_ssize_t actual; + char *tmp; if (alias->path) { grub_free (alias->path); alias->path = 0; } - if (grub_ieee1275_next_property (alias->parent_dev, alias->name, + tmp = grub_strdup (alias->name); + if (grub_ieee1275_next_property (alias->parent_dev, tmp, alias->name) <= 0) { + grub_free (tmp); grub_ieee1275_devalias_free (alias); return 0; } + grub_free (tmp); grub_dprintf ("devalias", "devalias name = %s\n", alias->name);