components/ksh93/patches/17851169.patch
author pkidd <patrick.kidd@oracle.com>
Fri, 15 Jan 2016 14:56:10 -0800
branchs11u3-sru
changeset 5286 6b74d954c5f7
parent 2992 d9071f35b6d4
child 6073 99c2bf34d78a
permissions -rw-r--r--
build metadata for S11.3SRU5.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2992
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     1
http://lists.research.att.com/pipermail/ast-developers/2014q1/003809.html
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     2
---
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     3
--- a/src/cmd/ksh93/sh/subshell.c
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     4
+++ b/src/cmd/ksh93/sh/subshell.c
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     5
@@ -234,15 +234,22 @@ Namval_t *sh_assignok(register Namval_t *np,int add)
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     6
 {
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     7
 	register Namval_t	*mp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     8
 	register struct Link	*lp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
     9
-	register struct subshell *sp = (struct subshell*)subshell_data;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    10
-	Shell_t			*shp = sp->shp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    11
-	Dt_t			*dp= shp->var_tree;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    12
+	register struct subshell *sp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    13
+	Shell_t			*shp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    14
+	Dt_t			*dp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    15
 	Namval_t		*mpnext;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    16
 	Namarr_t		*ap;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    17
 	int			save;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    18
+
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    19
+        sp = (struct subshell*)subshell_data;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    20
+
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    21
 	/* don't bother with this */
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    22
-	if(!sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    23
+	if(!sp || !sp->shpwd || np==SH_LEVELNOD || np==L_ARGNOD || np==SH_SUBSCRNOD || np==SH_NAMENOD)
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    24
 		return(np);
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    25
+
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    26
+	shp = sp->shp;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    27
+	dp = shp->var_tree;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    28
+
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    29
 	if((ap=nv_arrayptr(np)) && (mp=nv_opensub(np)))
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    30
 	{
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    31
 		shp->last_root = ap->table;
d9071f35b6d4 17851169 ksh93 core dump in sh_assignok() function
Tomas Klacko <tomas.klacko@oracle.com>
parents:
diff changeset
    32