--- a/components/ksh93/Makefile Thu Mar 20 04:02:54 2014 -0700
+++ b/components/ksh93/Makefile Thu Mar 20 05:08:05 2014 -0700
@@ -78,7 +78,7 @@
Bug15794787,15819673.patch \
Bug15808407.patch Bug17714341.patch \
17432413.patch 17824699.patch \
- 17435456.patch
+ 17435456.patch 17851169.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/17851169.patch Thu Mar 20 05:08:05 2014 -0700
@@ -0,0 +1,32 @@
+http://lists.research.att.com/pipermail/ast-developers/2014q1/003809.html
+---
+--- a/src/cmd/ksh93/sh/subshell.c
++++ b/src/cmd/ksh93/sh/subshell.c
[email protected]@ -234,15 +234,22 @@ Namval_t *sh_assignok(register Namval_t *np,int add)
+ {
+ register Namval_t *mp;
+ register struct Link *lp;
+- register struct subshell *sp = (struct subshell*)subshell_data;
+- Shell_t *shp = sp->shp;
+- Dt_t *dp= shp->var_tree;
++ register struct subshell *sp;
++ Shell_t *shp;
++ Dt_t *dp;
+ Namval_t *mpnext;
+ Namarr_t *ap;
+ int save;
++
++ sp = (struct subshell*)subshell_data;
++
+ /* don't bother with this */
+- if(!sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
++ if(!sp || !sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
+ return(np);
++
++ shp = sp->shp;
++ dp = shp->var_tree;
++
+ if((ap=nv_arrayptr(np)) && (mp=nv_opensub(np)))
+ {
+ shp->last_root = ap->table;
+