diff options
author | June McEnroe <june@causal.agency> | 2019-01-10 20:01:33 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-01-10 20:01:33 -0500 |
commit | cf9d2e8c389b84dba23c83b5cfc72082df65dfba (patch) | |
tree | dfa5f4e72c32620d0675b317bbf25c24b242e61f /bin/cash | |
parent | Replace st_mtim with st_mtimespec (diff) | |
download | src-cf9d2e8c389b84dba23c83b5cfc72082df65dfba.tar.gz src-cf9d2e8c389b84dba23c83b5cfc72082df65dfba.zip |
Replace eaccess with faccessat
Diffstat (limited to '')
-rw-r--r-- | bin/cash/exec.c | 2 | ||||
-rw-r--r-- | bin/cash/test.c | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/bin/cash/exec.c b/bin/cash/exec.c index c376dc51..5026e644 100644 --- a/bin/cash/exec.c +++ b/bin/cash/exec.c @@ -725,7 +725,7 @@ typecmd_impl(int argc, char **argv, int cmd, const char *path) " a tracked alias for" : "", name); } else { - if (eaccess(argv[i], X_OK) == 0) { + if (faccessat(AT_FDCWD, argv[i], X_OK, AT_EACCESS) == 0) { if (cmd == TYPECMD_SMALLV) out1fmt("%s\n", argv[i]); else diff --git a/bin/cash/test.c b/bin/cash/test.c index e74c4f4c..a153cdb3 100644 --- a/bin/cash/test.c +++ b/bin/cash/test.c @@ -23,6 +23,7 @@ __FBSDID("$FreeBSD: releng/12.0/bin/test/test.c 298232 2016-04-19 00:38:07Z arau #include <ctype.h> #include <err.h> #include <errno.h> +#include <fcntl.h> #include <inttypes.h> #include <limits.h> #include <stdarg.h> @@ -375,18 +376,18 @@ filstat(char *nm, enum token mode) switch (mode) { case FILRD: - return (eaccess(nm, R_OK) == 0); + return (faccessat(AT_FDCWD, nm, R_OK, AT_EACCESS) == 0); case FILWR: - return (eaccess(nm, W_OK) == 0); + return (faccessat(AT_FDCWD, nm, W_OK, AT_EACCESS) == 0); case FILEX: /* XXX work around eaccess(2) false positives for superuser */ - if (eaccess(nm, X_OK) != 0) + if (faccessat(AT_FDCWD, nm, X_OK, AT_EACCESS) != 0) return 0; if (S_ISDIR(s.st_mode) || geteuid() != 0) return 1; return (s.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) != 0; case FILEXIST: - return (eaccess(nm, F_OK) == 0); + return (faccessat(AT_FDCWD, nm, F_OK, AT_EACCESS) == 0); case FILREG: return S_ISREG(s.st_mode); case FILDIR: |