Based on Coverity scan.
CID: 96660
Extended to also cover other error return places.
return grub_errno;
if (get_uuid (NULL, &uuid_root, 0))
- return grub_errno;
+ {
+ grub_free (mods);
+ return grub_errno;
+ }
prefdev = grub_file_get_device_name (prefix);
if (grub_errno)
if (get_uuid (prefdev, &uuid_prefix, 0))
{
grub_free (uuid_root);
+ grub_free (prefdev);
+ grub_free (mods);
return grub_errno;
}
}
grub_free (uuid_root);
grub_free (uuid_prefix);
+ grub_free (prefdev);
+ grub_free (mods);
return GRUB_ERR_NONE;
fail:
grub_free (uuid_root);
grub_free (uuid_prefix);
+ grub_free (prefdev);
for (i = 0; i < mods_loaded; i++)
if (mods[i])
mods[i]->fini = 0;
grub_dl_unload (mods[i]);
}
+ grub_free (mods);
+
return grub_errno;
}