1
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
2
Subject: [PATCH] Fix mkdir / error value
4
(needed for busybox's mkdir -p)
6
In the / case, directory_name_split can't really split that into an
7
absolute ROOT file_t and ".", since name is supposed to be a pointer in
8
file_name... Changing the interface is being proposed.
11
sysdeps/mach/hurd/mkdir.c | 6 +++++-
12
sysdeps/mach/hurd/mkdirat.c | 6 +++++-
13
2 files changed, 10 insertions(+), 2 deletions(-)
15
diff --git a/sysdeps/mach/hurd/mkdir.c b/sysdeps/mach/hurd/mkdir.c
16
index b7e8074..cf6dda3 100644
17
--- a/sysdeps/mach/hurd/mkdir.c
18
+++ b/sysdeps/mach/hurd/mkdir.c
25
/* Create a directory named FILE_NAME with protections MODE. */
27
@@ -29,7 +30,10 @@ __mkdir (file_name, mode)
31
- file_t parent = __directory_name_split (file_name, (char **) &name);
33
+ if (!strcmp(file_name, "/"))
35
+ parent = __directory_name_split (file_name, (char **) &name);
36
if (parent == MACH_PORT_NULL)
38
err = __dir_mkdir (parent, name, mode & ~_hurd_umask);
39
diff --git a/sysdeps/mach/hurd/mkdirat.c b/sysdeps/mach/hurd/mkdirat.c
40
index a300745..8256ef8 100644
41
--- a/sysdeps/mach/hurd/mkdirat.c
42
+++ b/sysdeps/mach/hurd/mkdirat.c
50
mkdirat (fd, path, mode)
51
@@ -32,7 +33,10 @@ mkdirat (fd, path, mode)
55
- file_t parent = __directory_name_split_at (fd, path, (char **) &name);
57
+ if (!strcmp(path, "/"))
59
+ parent = __directory_name_split_at (fd, path, (char **) &name);
60
if (parent == MACH_PORT_NULL)
62
err = __dir_mkdir (parent, name, mode & ~_hurd_umask);
63
tg: (0234227..) t/mkdir_root (depends on: baseline)