diff options
Diffstat (limited to 'app-shells/bash/files/bash-4.1-fbsd-eaccess.patch')
-rw-r--r-- | app-shells/bash/files/bash-4.1-fbsd-eaccess.patch | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/app-shells/bash/files/bash-4.1-fbsd-eaccess.patch b/app-shells/bash/files/bash-4.1-fbsd-eaccess.patch deleted file mode 100644 index 3c5b5dd98d9b..000000000000 --- a/app-shells/bash/files/bash-4.1-fbsd-eaccess.patch +++ /dev/null @@ -1,29 +0,0 @@ -Bash built-in test fails to correctly report exeuctable status for non- -executable files when run by root on FreeBSD. - -See http://bugs.gentoo.org/303411 - -Patch from Johan Hattne <johan.hattne@utsuthwestern.edu> ---- a/lib/sh/eaccess.c.orig -+++ b/lib/sh/eaccess.c -@@ -198,11 +198,19 @@ - char *path; - int mode; - { -+ struct stat s; -+ int ret; -+ - if (path_is_devfd (path)) - return (sh_stataccess (path, mode)); - - #if defined (HAVE_EACCESS) /* FreeBSD */ -- return (eaccess (path, mode)); -+ if (stat (path, &s) != 0) -+ return (-1); -+ ret = eaccess (path, mode); -+ if (mode == X_OK && ret == 0 && !S_ISDIR(s.st_mode) && geteuid() == 0) -+ return ((s.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0 ? -1 : 0); -+ return (ret); - #elif defined (EFF_ONLY_OK) /* SVR4(?), SVR4.2 */ - return access (path, mode|EFF_ONLY_OK); - #else |