author | Danek Duvall <danek.duvall@oracle.com> |
Fri, 15 May 2015 11:21:43 -0700 | |
branch | s11-update |
changeset 4318 | 7f2f7aebce6e |
parent 2992 | d9071f35b6d4 |
child 6073 | 99c2bf34d78a |
permissions | -rw-r--r-- |
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 |