mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 02:34:55 +00:00
euidaccess: prefer POSIX over non-standard implementation
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat. * lib/euidaccess.c (euidaccess): Use it if available. Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
2009-09-03 Eric Blake <ebb9@byu.net>
|
||||
|
||||
euidaccess: prefer POSIX over non-standard implementation
|
||||
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat.
|
||||
* lib/euidaccess.c (euidaccess): Use it if available.
|
||||
|
||||
openat: make template easier to use
|
||||
* lib/at-func.c (CALL_FUNC): Allow AT_FUNC_USE_F1_COND and
|
||||
AT_FUNC_F2 to be undefined.
|
||||
|
||||
+5
-3
@@ -1,7 +1,7 @@
|
||||
/* euidaccess -- check if effective user id can access file
|
||||
|
||||
Copyright (C) 1990, 1991, 1995, 1998, 2000, 2003, 2004, 2005, 2006, 2008
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1991, 1995, 1998, 2000, 2003, 2004, 2005, 2006,
|
||||
2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@@ -77,7 +77,9 @@
|
||||
int
|
||||
euidaccess (const char *file, int mode)
|
||||
{
|
||||
#if defined EFF_ONLY_OK
|
||||
#if HAVE_FACCESSAT
|
||||
return faccessat (AT_FDCWD, file, mode, AT_EACCESS);
|
||||
#elif defined EFF_ONLY_OK
|
||||
return access (file, mode | EFF_ONLY_OK);
|
||||
#elif defined ACC_SELF
|
||||
return accessx (file, mode, ACC_SELF);
|
||||
|
||||
+4
-1
@@ -1,4 +1,4 @@
|
||||
# euidaccess.m4 serial 10
|
||||
# euidaccess.m4 serial 11
|
||||
dnl Copyright (C) 2002-2009 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -31,6 +31,9 @@ AC_DEFUN([gl_FUNC_EUIDACCESS],
|
||||
|
||||
# Prerequisites of lib/euidaccess.c.
|
||||
AC_DEFUN([gl_PREREQ_EUIDACCESS], [
|
||||
dnl Prefer POSIX faccessat over non-standard euidaccess.
|
||||
AC_CHECK_FUNCS_ONCE([faccessat])
|
||||
dnl Try various other non-standard fallbacks.
|
||||
AC_CHECK_HEADERS_ONCE([libgen.h])
|
||||
AC_CHECK_DECLS_ONCE([setregid])
|
||||
AC_REQUIRE([AC_FUNC_GETGROUPS])
|
||||
|
||||
Reference in New Issue
Block a user