components/ksh93/patches/105-CR7032068.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Mon, 18 May 2015 14:11:16 -0700
changeset 4305 90493abe0c5c
parent 4268 d723f8ed85fe
child 5129 5431772f7235
permissions -rw-r--r--
backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4305
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
     1
diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c INIT.2011-02-08/src/cmd/ksh93/sh/macro.c
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
     2
--- INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c	2012-05-02 03:34:48.830258020 -0700
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
     3
+++ INIT.2011-02-08/src/cmd/ksh93/sh/macro.c	2012-05-02 03:42:51.584924888 -0700
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
     4
@@ -1084,7 +1084,7 @@ static int varsub(Mac_t *mp)
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     5
 {
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     6
 	register int	c;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     7
 	register int	type=0; /* M_xxx */
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     8
-	register char	*v,*argp=0;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     9
+	register char	*v, *new_v = NULL, *argp=0;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    10
 	register Namval_t	*np = NIL(Namval_t*);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    11
 	register int 	dolg=0, mode=0;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    12
 	Lex_t		*lp = (Lex_t*)mp->shp->lex_context;
4305
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
    13
@@ -1436,6 +1436,7 @@ retry1:
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
    14
 				if( (mp->arith||mp->let) && (np->nvfun || nv_isattr(np,(NV_LJUST|NV_RJUST|NV_ZFILL))) && !nv_isattr(np,NV_INTEGER) && (offset==0 || !isalnum(c)))
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    15
 					mp->zeros = 1;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    16
 			}
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    17
+			new_v = v = strdup(v);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    18
 			if(savptr==stakptr(0))
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    19
 				stkseek(stkp,offset);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    20
 			else
4305
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
    21
@@ -1963,8 +1964,12 @@ retry2:
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    22
 	}
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    23
 	if(np)
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    24
 		nv_close(np);
4305
90493abe0c5c backout 17533968/17817727/17699248/17777549/18119738/18229654/16169978/18302723/16507675/18920300/18355790/19907453/18426052/20808157/20948390/20948350 - causes 21091065
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 4268
diff changeset
    25
+ 	if (new_v)
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    26
+		free(new_v);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    27
 	return(1);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    28
 nosub:
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    29
+	if (new_v)
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    30
+		free(new_v);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    31
 	if(type==M_BRACE && sh_lexstates[ST_NORM][c]==S_BREAK)
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    32
 	{
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    33
 		fcseek(-1);