# HG changeset patch # User Tomas Klacko # Date 1395741102 -3600 # Node ID 9265805e77d57aa0b13897637262ebcc774f3611 # Parent 07878573dad3b8dc680f76c49e4f901bea5ee5b6 17851169 ksh93 core dump in sh_assignok() function diff -r 07878573dad3 -r 9265805e77d5 components/ksh93/Makefile --- a/components/ksh93/Makefile Tue Jan 07 04:04:31 2014 -0800 +++ b/components/ksh93/Makefile Tue Mar 25 10:51:42 2014 +0100 @@ -76,7 +76,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) 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; +