components/bash/patches/solaris-023.eaccess.c.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Fri, 27 Feb 2015 09:41:59 -0800
changeset 3871 ddf9e355ac16
child 5518 c47fe0edc204
permissions -rw-r--r--
15646021 problem in UTILITY/BASH 20597159 bash builtin test returns wrong result for executable test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3871
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
# Internal patch.
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# Do not return true if euid == 0 and file does not have the execute bit set.
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
--- lib/sh/eaccess.c	2015-02-26 13:35:43.607917337 -0800
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
+++ lib/sh/eaccess.c	2015-02-26 13:36:29.154827001 -0800
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
@@ -211,11 +211,11 @@
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
   if (path_is_devfd (path))
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
     return (sh_stataccess (path, mode));
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
 
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
-#if defined (HAVE_FACCESSAT) && defined (AT_EACCESS)
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
+#if defined(HAVE_FACCESSAT) && defined(AT_EACCESS) && !defined(SOLARIS)
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
   return (faccessat (AT_FDCWD, path, mode, AT_EACCESS));
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
 #elif defined (HAVE_EACCESS)		/* FreeBSD */
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
   ret = eaccess (path, mode);	/* XXX -- not always correct for X_OK */
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
-#  if defined (__FreeBSD__)
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
+#  if defined(__FreeBSD__) || defined(SOLARIS)
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
   if (ret == 0 && current_user.euid == 0 && mode == X_OK)
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
     return (sh_stataccess (path, mode));
ddf9e355ac16 15646021 problem in UTILITY/BASH
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
 #  endif