asprintf and snprintf support
This commit is contained in:
parent
c181849b95
commit
8b442f3f4c
60 changed files with 396 additions and 345 deletions
|
@ -86,7 +86,7 @@ grub_device_iterate (int (*hook) (const char *name))
|
|||
struct part_ent
|
||||
{
|
||||
struct part_ent *next;
|
||||
char name[0];
|
||||
char *name;
|
||||
} *ents;
|
||||
|
||||
int iterate_disk (const char *disk_name)
|
||||
|
@ -118,6 +118,7 @@ grub_device_iterate (int (*hook) (const char *name))
|
|||
|
||||
if (!ret)
|
||||
ret = hook (p->name);
|
||||
grub_free (p->name);
|
||||
grub_free (p);
|
||||
p = next;
|
||||
}
|
||||
|
@ -138,15 +139,20 @@ grub_device_iterate (int (*hook) (const char *name))
|
|||
if (! partition_name)
|
||||
return 1;
|
||||
|
||||
p = grub_malloc (sizeof (p->next) + grub_strlen (disk->name) + 1 +
|
||||
grub_strlen (partition_name) + 1);
|
||||
p = grub_malloc (sizeof (p->next));
|
||||
if (!p)
|
||||
{
|
||||
grub_free (partition_name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_sprintf (p->name, "%s,%s", disk->name, partition_name);
|
||||
p->name = grub_asprintf ("%s,%s", disk->name, partition_name);
|
||||
if (!p->name)
|
||||
{
|
||||
grub_free (partition_name);
|
||||
grub_free (p);
|
||||
return 1;
|
||||
}
|
||||
grub_free (partition_name);
|
||||
|
||||
p->next = ents;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue