diff -r 07878573dad3 -r 9265805e77d5 components/ksh93/patches/17851169.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/ksh93/patches/17851169.patch Tue Mar 25 10:51:42 2014 +0100 @@ -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 +@@ -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; +