# HG changeset patch # User Mohana Rao Gorai # Date 1363754732 14400 # Node ID f112164dd16d7ae7ebe4e616fccf4ff938d9aa77 # Parent f99c0e9ebba729a6c654acec6ded566e5c6cb4db 15794787 SUNBT7172653 ksh93 hangs when passing a 20481-byte file through pipe 15819673 SUNBT7202182 ksh93 script hangs when ps -ef gets stuck in fifo_write diff -r f99c0e9ebba7 -r f112164dd16d components/ksh93/Makefile --- a/components/ksh93/Makefile Wed Mar 13 19:01:31 2013 -0600 +++ b/components/ksh93/Makefile Wed Mar 20 00:45:32 2013 -0400 @@ -75,7 +75,8 @@ CR7019368.patch CR6729252.patch \ MAP_TYPE_64_Bits.patch CR7167466.patch \ CR7168611.patch CR7178717.patch \ - CR7175995.patch CR7128313.patch + CR7175995.patch CR7128313.patch \ + Bug15794787,15819673.patch # Fixup HOSTTYPE to match uname output and bits HOSTTYPE32=sol11.$(shell uname -p) diff -r f99c0e9ebba7 -r f112164dd16d components/ksh93/patches/Bug15794787,15819673.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/ksh93/patches/Bug15794787,15819673.patch Wed Mar 20 00:45:32 2013 -0400 @@ -0,0 +1,39 @@ +--- a/src/cmd/ksh93/sh/xec.c Thu Nov 29 22:06:17 2012 ++++ b/src/cmd/ksh93/sh/xec.c Fri Nov 30 00:45:30 2012 +@@ -540,8 +540,10 @@ + static Sfio_t *io_save; + volatile int traceon=0, lineno=0; + int binscript=shp->binscript; ++ char comsub = shp->comsub; + io_save = iop; /* preserve correct value across longjmp */ + shp->binscript = 0; ++ shp->comsub = 0; + #define SH_TOPFUN 0x8000 /* this is a temporary tksh hack */ + if (mode & SH_TOPFUN) + { +@@ -581,6 +583,7 @@ + } + sh_popcontext(shp,&buff); + shp->binscript = binscript; ++ shp->comsub = comsub; + if(traceon) + sh_onoption(SH_XTRACE); + if(lineno) +@@ -3281,7 +3284,8 @@ + struct funenv fun; + char *fname = nv_getval(SH_FUNNAMENOD); + struct Level *lp =(struct Level*)(SH_LEVELNOD->nvfun); +- int level, pipepid=shp->pipepid; ++ int level, pipepid=shp->pipepid, comsub=shp->comsub; ++ shp->comsub = 0; + shp->pipepid = 0; + sh_stats(STAT_FUNCT); + if(!lp->hdr.disc) +@@ -3323,6 +3327,7 @@ + lp->maxlevel = level; + SH_LEVELNOD->nvalue.s = lp->maxlevel; + shp->last_root = nv_dict(DOTSHNOD); ++ shp->comsub = comsub; + #if 0 + nv_putval(SH_FUNNAMENOD,shp->st.funname,NV_NOFREE); + #else