15646021 problem in UTILITY/BASH
20597159 bash builtin test returns wrong result for executable test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/bash/patches/solaris-022.bash.sighup.patch Fri Feb 27 09:41:59 2015 -0800
@@ -0,0 +1,22 @@
+# Internal patch. Upstream will not accept it.
+# If read EOF on a non-blank line do not interpret as a NL.
+# Clear the readline buffers and return eof_found.
+--- lib/readline/readline.c 2009-08-31 05:45:31.000000000 -0700
++++ lib/readline/readline.c 2015-02-18 11:10:55.652803033 -0800
+@@ -533,7 +533,15 @@
+
+ /* EOF typed to a non-blank line is a <NL>. */
+ if (c == EOF && rl_end)
+- c = NEWLINE;
++ {
++ _rl_internal_char_cleanup ();
++ eof_found = 1;
++#if defined (READLINE_CALLBACKS)
++ return 0;
++#else
++ return (eof_found);
++#endif
++ }
+
+ /* The character _rl_eof_char typed to blank line, and not as the
+ previous character is interpreted as EOF. */
--- /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