]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
util/grub-install: Move platdir path canonicalization after files were copied to...
authorMate Kukri <mate.kukri@canonical.com>
Fri, 8 Dec 2023 16:57:55 +0000 (16:57 +0000)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 12 Dec 2023 15:48:44 +0000 (16:48 +0100)
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>
util/grub-install.c

index 9feb4ea9edab9735e94bcb3686300652b1c93425..7dc5657bb671c848dfeda3ccd9b970b43f4bed03 100644 (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");