util/grub-install: Move platdir path canonicalization after files were copied to grubdir

The commit 3f9eace2d (util/grub-install: Delay copying files to
{grubdir,platdir} after install_device was validated) delaying
copying of files caused a regression when installing without an
existing directory structure.

This patch ensures that the platform directory actually exists by the
time the code tries to canonicalize its filename.

Fixes: 3f9eace2d (util/grub-install: Delay copying files to {grubdir,platdir} after install_device was validated)

Signed-off-by: Mate Kukri <mate.kukri@canonical.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Mate Kukri 2023-12-08 16:57:55 +00:00 committed by Daniel Kiper
parent f18a899ab1
commit 353beb80c0

View File

@ -1366,18 +1366,6 @@ main (int argc, char *argv[])
relative_grubdir = xstrdup ("/");
}
char *platname = grub_install_get_platform_name (platform);
char *platdir;
{
char *t = grub_util_path_concat (2, grubdir,
platname);
platdir = grub_canonicalize_file_name (t);
if (!platdir)
grub_util_error (_("failed to get canonical path of `%s'"),
t);
free (t);
}
char *prefix_drive = NULL;
char *install_drive = NULL;
@ -1408,6 +1396,18 @@ main (int argc, char *argv[])
if (!grub_util_is_regular (envfile))
grub_util_create_envblk_file (envfile);
char *platname = grub_install_get_platform_name (platform);
char *platdir;
{
char *t = grub_util_path_concat (2, grubdir,
platname);
platdir = grub_canonicalize_file_name (t);
if (!platdir)
grub_util_error (_("failed to get canonical path of `%s'"),
t);
free (t);
}
load_cfg = grub_util_path_concat (2, platdir,
"load.cfg");