# HG changeset patch # User Tomas Klacko # Date 1392128051 28800 # Node ID f76a8a4838a462ed9f5ad5a30bceb5cc1f326825 # Parent 00a5911e2a6d2fbd4a7996baf6b0a73b9cfda9a5 17851169 ksh93 core dump in sh_assignok() function diff -r 00a5911e2a6d -r f76a8a4838a4 components/ksh93/Makefile --- a/components/ksh93/Makefile Mon Feb 10 15:17:52 2014 -0800 +++ b/components/ksh93/Makefile Tue Feb 11 06:14:11 2014 -0800 @@ -79,7 +79,7 @@ CR7128313.patch 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) diff -r 00a5911e2a6d -r f76a8a4838a4 components/ksh93/patches/17851169.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/ksh93/patches/17851169.patch Tue Feb 11 06:14:11 2014 -0800 @@ -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; +