[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/2] util: confirm directory creation in grub_install_mkdir_p

From: Vladimir 'phcoder' Serbinenko
Subject: Re: [PATCH 2/2] util: confirm directory creation in grub_install_mkdir_p
Date: Tue, 9 Aug 2022 16:04:32 +0200

Did you test the case when some of components exist and are symlinks? E.g. /temp being a symlinkto /var/tmp

Le mar. 9 août 2022, 15:30, Darren Kenny <> a écrit :
Because grub_util_mkdir() is implemented to not return a value on any
platform, grub_instal_mkdir_p can test for success by confirming that
the directory requested exists after attempting to create it, otherwise
it should fail with an error and exit.

While fixing this, a flaw in the logic was shown, where the first match
of the path separator, which almost always was the first character in
the path (e.g. /boot/grub2) would result in creating a directory with an
empty name (i.e. ""). To avoid that, it should skip the handling of the
path separator where p is pointing to the first character.

Signed-off-by: Darren Kenny <>
 util/grub-install-common.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/util/grub-install-common.c b/util/grub-install-common.c
index 347558bf5412..035293c2357e 100644
--- a/util/grub-install-common.c
+++ b/util/grub-install-common.c
@@ -173,15 +173,20 @@ grub_install_mkdir_p (const char *dst)
   char *p;
   for (p = t; *p; p++)
-      if (is_path_separator (*p))
+      if (is_path_separator (*p) && p != t)
          char s = *p;
          *p = '\0';
          grub_util_mkdir (t);
+         if (!grub_util_is_directory(t))
+           grub_util_error (_("failed to make directory: '%s'"), t);
          *p = s;
   grub_util_mkdir (t);
+  if (!grub_util_is_directory(t))
+    grub_util_error (_("failed to make directory: '%s'"), t);
   free (t);


Grub-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]