17824699 ksh93 coredumps in ed_emacsread() when changing prompt string (PS1) s11u1-sru 0.175.1.17.0.3.0 S11.1SRU17.3
authorTomas Klacko <tomas.klacko@oracle.com>
Mon, 17 Feb 2014 11:00:49 +0100
branchs11u1-sru
changeset 2954 33df57f08b3e
parent 2952 e67c9321ec34
child 2958 d9b5e8394801
17824699 ksh93 coredumps in ed_emacsread() when changing prompt string (PS1) 17435456 setting KSH_VERSION crashes ksh93
components/ksh93/Makefile
components/ksh93/patches/17435456.patch
components/ksh93/patches/17824699.patch
--- a/components/ksh93/Makefile	Fri Oct 25 14:37:51 2013 -0700
+++ b/components/ksh93/Makefile	Mon Feb 17 11:00:49 2014 +0100
@@ -75,7 +75,8 @@
 					 CR7175995.patch CR7128313.patch \
 					 Bug15794787,15819673.patch \
 					 Bug15808407.patch Bug17714341.patch \
-					 17432413.patch
+					 17432413.patch 17824699.patch \
+					 17435456.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/17435456.patch	Mon Feb 17 11:00:49 2014 +0100
@@ -0,0 +1,17 @@
+http://lists.research.att.com/pipermail/ast-developers/2014q1/003806.html
+
+--- a/src/cmd/ksh93/sh/init.c
++++ b/src/cmd/ksh93/sh/init.c
+@@ -1933,6 +1933,11 @@ static void env_init(Shell_t *shp)
+ 		*dp++ = 0;
+ 		if(mp = dtmatch(shp->var_base,cp))
+ 		{
++                        if(strcmp(cp,VERSIONNOD->nvname)==0)
++                        {
++                                dp[-1] = '=';
++                                continue;
++                        }
+ 			mp->nvenv = (char*)cp;
+ 			dp[-1] = '=';
+ 		}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ksh93/patches/17824699.patch	Mon Feb 17 11:00:49 2014 +0100
@@ -0,0 +1,30 @@
+http://lists.research.att.com/pipermail/ast-developers/2014q1/003807.html
+---
+diff --git a/src/cmd/ksh93/edit/edit.c b/src/cmd/ksh93/edit/edit.c
+index 769ba2e..4f6330e 100644
+--- a/src/cmd/ksh93/edit/edit.c
++++ b/src/cmd/ksh93/edit/edit.c
+@@ -651,7 +651,8 @@ void	ed_setup(register Edit_t *ep, int fd, int reedit)
+ 			{
+ 				int skip=0;
+ 				ep->e_crlf = 0;
+-				*pp++ = c;
++				if (pp < ppmax)
++					*pp++ = c;
+ 				for(n=1; c = *last++; n++)
+ 				{
+ 					if(pp < ppmax)
+diff --git a/src/cmd/ksh93/include/edit.h b/src/cmd/ksh93/include/edit.h
+index 795777d..145066d 100644
+--- a/src/cmd/ksh93/include/edit.h
++++ b/src/cmd/ksh93/include/edit.h
+@@ -59,7 +59,7 @@
+ #endif /* SHOPT_MULTIBYTE */
+ 
+ #define TABSIZE	8
+-#define PRSIZE	160
++#define PRSIZE	256
+ #define MAXLINE	1024		/* longest edit line permitted */
+ 
+ typedef struct _edit_pos
+