file = grub_file_open (filename);
if (! file)
- return grub_errno;
+ {
+ grub_free (suffix);
+ return grub_errno;
+ }
menu = grub_env_get_menu ();
if (! menu)
{
menu = grub_zalloc (sizeof (*menu));
if (! menu)
- return grub_errno;
+ {
+ grub_free (suffix);
+ return grub_errno;
+ }
grub_env_set_menu (menu);
}
if (!buf && grub_errno)
{
grub_file_close (file);
+ grub_free (suffix);
return grub_errno;
}
if (!args)
{
grub_file_close (file);
+ grub_free (suffix);
+ grub_free (entrysrc);
return grub_errno;
}
args[0] = entryname;
if (part && grub_strcmp (part->partmap->name, "msdos") == 0)
bsd_slice = part->number;
}
+ if (dev)
+ grub_device_close (dev);
}
/* k*BSD didn't really work well with grub-legacy. */