aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mach
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-11-18 16:41:00 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-11-18 16:49:08 -0200
commite92bd6e362470aa0a79cfb19a512944f0761184b (patch)
treec890d3d7f2a9680c4f9d6ac9d9b7f1e7b7328784 /sysdeps/mach
parentc73c7fc07c001f2a907a9c6d50c57d377ce0351f (diff)
downloadglibc-e92bd6e362470aa0a79cfb19a512944f0761184b.zip
glibc-e92bd6e362470aa0a79cfb19a512944f0761184b.tar.gz
glibc-e92bd6e362470aa0a79cfb19a512944f0761184b.tar.bz2
Fix hurd __access_noerrno implementation.
This patch fixes some hurd bits from commit afcf3cd8eb that added the __access_noerrno internal symbol. It basically removes the nonrequired __hurd_fail_noerrno (since the 'err' argument is ignored) and fixes a typo for EACCES. However, as stated on maillist [1] this __access_noerrno may still be unsafe to run during initialization of tunables on the Hurd. The access_common calls __hurd_file_name_lookup, which calls __hurd_file_name_lookup_retry, which can set errno. [1] https://sourceware.org/ml/libc-alpha/2016-11/msg00646.html
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/access.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/mach/hurd/access.c b/sysdeps/mach/hurd/access.c
index 93e2166..0df939a 100644
--- a/sysdeps/mach/hurd/access.c
+++ b/sysdeps/mach/hurd/access.c
@@ -31,7 +31,7 @@ hurd_fail_seterrno (error_t err)
static int
hurd_fail_noerrno (error_t err)
{
- return __hurd_fail_noerrno (err);
+ return -1;
}
static int
@@ -149,13 +149,15 @@ access_common (const char *file, int type, int (*errfunc) (error_t))
if (flags & ~allowed)
/* We are not allowed all the requested types of access. */
- return errfunc (EACESS);
+ return errfunc (EACCES);
return 0;
}
/* Test for access to FILE by our real user and group IDs without setting
- errno. */
+ errno. This may be unsafe to run during initialization of tunables
+ since access_common calls __hurd_file_name_lookup, which calls
+ __hurd_file_name_lookup_retry, which can set errno. */
int
__access_noerrno (const char *file, int type)
{