components/bash/patches/solaris-023.eaccess.c.patch
changeset 3871 ddf9e355ac16
child 5518 c47fe0edc204
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/bash/patches/solaris-023.eaccess.c.patch	Fri Feb 27 09:41:59 2015 -0800
@@ -0,0 +1,18 @@
+# Internal patch.
+# Do not return true if euid == 0 and file does not have the execute bit set.
+--- lib/sh/eaccess.c	2015-02-26 13:35:43.607917337 -0800
++++ lib/sh/eaccess.c	2015-02-26 13:36:29.154827001 -0800
+@@ -211,11 +211,11 @@
+   if (path_is_devfd (path))
+     return (sh_stataccess (path, mode));
+ 
+-#if defined (HAVE_FACCESSAT) && defined (AT_EACCESS)
++#if defined(HAVE_FACCESSAT) && defined(AT_EACCESS) && !defined(SOLARIS)
+   return (faccessat (AT_FDCWD, path, mode, AT_EACCESS));
+ #elif defined (HAVE_EACCESS)		/* FreeBSD */
+   ret = eaccess (path, mode);	/* XXX -- not always correct for X_OK */
+-#  if defined (__FreeBSD__)
++#  if defined(__FreeBSD__) || defined(SOLARIS)
+   if (ret == 0 && current_user.euid == 0 && mode == X_OK)
+     return (sh_stataccess (path, mode));
+ #  endif