aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--hurd/hurd.h29
-rw-r--r--include/unistd.h3
-rw-r--r--sysdeps/mach/hurd/access.c8
4 files changed, 15 insertions, 33 deletions
diff --git a/ChangeLog b/ChangeLog
index 4c90aa0..b923ac9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-11-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * hurd/hurd.h (__hurd_fail_noerrno): Remove function.
+ * include/unistd.h: Extend comment about __access_noerrno return
+ semantics.
+ * sysdeps/match/hurd/access.c (__hurd_fail_noerrno): Return -1.
+ (access_common): Correct typo for EACCES.
+
2016-11-18 Chris Metcalf <cmetcalf@mellanox.com>
* sysdeps/tile/math-tests.h: New file.
diff --git a/hurd/hurd.h b/hurd/hurd.h
index c089d4c..ec07827 100644
--- a/hurd/hurd.h
+++ b/hurd/hurd.h
@@ -75,35 +75,6 @@ __hurd_fail (error_t err)
errno = err;
return -1;
}
-
-_HURD_H_EXTERN_INLINE int
-__hurd_fail_noerrno (error_t err)
-{
- switch (err)
- {
- case EMACH_SEND_INVALID_DEST:
- case EMIG_SERVER_DIED:
- /* The server has disappeared! */
- err = EIEIO;
- break;
-
- case KERN_NO_SPACE:
- err = ENOMEM;
- break;
-
- case KERN_INVALID_ARGUMENT:
- err = EINVAL;
- break;
-
- case 0:
- return 0;
-
- default:
- break;
- }
-
- return -1;
-}
/* Basic ports and info, initialized by startup. */
diff --git a/include/unistd.h b/include/unistd.h
index 6144f41..16d68a1 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -183,7 +183,8 @@ extern int __getlogin_r_loginuid (char *name, size_t namesize)
# if IS_IN (rtld) || !defined SHARED
/* __access variant that does not set errno. Used in very early initialization
- code in libc.a and ld.so. */
+ code in libc.a and ld.so. It follows access return semantics (zero for
+ sucess otherwise a value different than 0). */
extern __typeof (__access) __access_noerrno attribute_hidden;
# endif
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)
{