aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd/getcwd.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2019-08-30 01:08:09 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2019-08-30 01:08:09 +0200
commit90f0f97ccba34efa6ac8d7d4d77db5d473e8da32 (patch)
tree1256d63a05a2fc228c4762f8ea443c3237095ee1 /sysdeps/mach/hurd/getcwd.c
parentf0e84494b1c8b7262ebe925f224dfeef7fb5dcef (diff)
downloadglibc-90f0f97ccba34efa6ac8d7d4d77db5d473e8da32.tar
glibc-90f0f97ccba34efa6ac8d7d4d77db5d473e8da32.tar.gz
glibc-90f0f97ccba34efa6ac8d7d4d77db5d473e8da32.tar.bz2
glibc-90f0f97ccba34efa6ac8d7d4d77db5d473e8da32.zip
hurd getcwd: Allow unknown root directory
To be efficient, the remap translator simply returns ports from the underlying filesystem, and thus the root directory found through browsing '..' is the underlying root, not the remap root. This should not be a reason for getcwd to fail. * sysdeps/mach/hurd/getcwd.c (_hurd_canonicalize_directory_name_internal): Do not remove the heading slash if we got an unknown root directory. (__getcwd): Do not fail with EGRATUITOUS if we got an unknown root directory.
Diffstat (limited to 'sysdeps/mach/hurd/getcwd.c')
-rw-r--r--sysdeps/mach/hurd/getcwd.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index 93b7b1de58..7481ae9857 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -266,11 +266,6 @@ __hurd_canonicalize_directory_name_internal (file_t thisdir,
So the root is our current directory. */
*--file_namep = '/';
- if (thisid != rootid)
- /* We did not get to our root directory. The returned name should
- not begin with a slash. */
- ++file_namep;
-
memmove (file_name, file_namep, file_name + size - file_namep);
cleanup ();
return file_name;
@@ -309,13 +304,6 @@ __getcwd (char *buf, size_t size)
__USEPORT (CWDIR,
__hurd_canonicalize_directory_name_internal (port,
buf, size));
- if (cwd && cwd[0] != '/')
- {
- /* `cwd' is an unknown root directory. */
- if (buf == NULL)
- free (cwd);
- return __hurd_fail (EGRATUITOUS), NULL;
- }
return cwd;
}
weak_alias (__getcwd, getcwd)