20855453 ksh93 echo displaying wrong variable value due to missing EIO handling s11u3-sru
authorLijo George<lijo.x.george@oracle.com>
Tue, 18 Apr 2017 03:03:20 -0700
branchs11u3-sru
changeset 7891 95cc369493f9
parent 7890 8f7cc4856a32
child 7892 12b3bc23e595
20855453 ksh93 echo displaying wrong variable value due to missing EIO handling
components/ksh93/Makefile
components/ksh93/patches/20855453.patch
--- a/components/ksh93/Makefile	Mon Apr 10 01:23:30 2017 -0700
+++ b/components/ksh93/Makefile	Tue Apr 18 03:03:20 2017 -0700
@@ -84,7 +84,8 @@
                      19907453.patch 22461939.patch \
                      22550551.patch 22561374.patch \
                      22964126.patch 22964338.patch \
-                     22964358.patch 23319761.patch
+                     22964358.patch 23319761.patch \
+                     20855453.patch
 
 # Fixup HOSTTYPE to match uname output and bits
 HOSTTYPE32=sol11.$(shell uname -p)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/20855453.patch	Tue Apr 18 03:03:20 2017 -0700
@@ -0,0 +1,31 @@
+This patch has been developed inhouse and has been submitted upstream.
+Details can be found at 
+https://github.com/att/ast/issues/30
+--- INIT.2012-08-01.old/src/cmd/ksh93/sh/io.c	2017-01-04 14:41:25.199402375 +0000
++++ INIT.2012-08-01/src/cmd/ksh93/sh/io.c	2017-01-04 14:32:20.279449987 +0000
[email protected]@ -64,9 +64,9 @@
+ 
+ #ifndef ERROR_PIPE
+ #ifdef ECONNRESET
+-#define ERROR_PIPE(e)	((e)==EPIPE||(e)==ECONNRESET)
++#define ERROR_PIPE(e)	((e)==EPIPE||(e)==ECONNRESET||(e)==EIO)
+ #else
+-#define ERROR_PIPE(e)	((e)==EPIPE)
++#define ERROR_PIPE(e)	((e)==EPIPE||(e)==EIO)
+ #endif
+ #endif
+ 
+--- INIT.2012-08-01.old/src/lib/libast/include/error.h	2017-02-17 02:39:37.507460057 +0000
++++ INIT.2012-08-01/src/lib/libast/include/error.h	2017-02-17 04:42:38.872435651 +0000
[email protected]@ -85,9 +85,9 @@
+ #define ERROR_SET		0x0080	/* set context			*/
+ 
+ #ifdef ECONNRESET
+-#define ERROR_PIPE(e)		((e)==EPIPE||(e)==ECONNRESET)
++#define ERROR_PIPE(e)		((e)==EPIPE||(e)==ECONNRESET||(e)==EIO)
+ #else
+-#define ERROR_PIPE(e)		((e)==EPIPE)
++#define ERROR_PIPE(e)		((e)==EPIPE||(e)==EIO)
+ #endif
+ 
+ /*