components/ksh93/patches/17851169.patch
author Danek Duvall <danek.duvall@oracle.com>
Fri, 15 May 2015 11:21:43 -0700
branchs11-update
changeset 4318 7f2f7aebce6e
parent 2992 d9071f35b6d4
child 6073 99c2bf34d78a
permissions -rw-r--r--
21063316 pkg update fails from s11.2.10.0.5 to s11.3_21

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;