components/ksh93/patches/120-CR7089799.patch
author Lijo George<lijo.x.george@oracle.com>
Thu, 23 Feb 2017 01:05:08 -0800
changeset 7683 7955769fefe6
parent 5129 5431772f7235
permissions -rw-r--r--
20855453 ksh93 echo displaying wrong variable value due to missing EIO handling
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5129
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     1
# This patch has been developed inhouse. This fixes a Solaris specific
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     2
# issue and has not been submitted to the community.
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     3
--- INIT.2012-08-01.old/src/cmd/ksh93/sh/io.c	2015-02-24 13:25:19.362427732 -0800
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     4
+++ INIT.2012-08-01/src/cmd/ksh93/sh/io.c	2015-03-05 12:11:01.233941923 -0800
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     5
@@ -871,7 +877,6 @@ int sh_iomovefd(register int fdold)
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     6
 {
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     7
 	Shell_t *shp = sh_getinterp();
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     8
 	register int fdnew;
5129
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
     9
-	if(fdold >= shp->gd->lim.open_max)
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
    10
-		sh_iovalidfd(shp,fdold);
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    11
+	VALIDATE_FD(shp, fdold);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    12
 	if(fdold<0 || fdold>2)
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    13
 		return(fdold);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    14
 	fdnew = sh_iomovefd(dup(fdold));
5129
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
    15
@@ -893,6 +899,8 @@ int	sh_pipe(register int pv[])
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    16
 		errormsg(SH_DICT,ERROR_system(1),e_pipe);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    17
 	pv[0] = sh_iomovefd(pv[0]);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    18
 	pv[1] = sh_iomovefd(pv[1]);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    19
+	VALIDATE_FD(shp, pv[0]);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    20
+	VALIDATE_FD(shp, pv[1]);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    21
 	shp->fdstatus[pv[0]] = IONOSEEK|IOREAD;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    22
 	shp->fdstatus[pv[1]] = IONOSEEK|IOWRITE;
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    23
 	sh_subsavefd(pv[0]);
5129
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
    24
--- INIT.2012-08-01.old/src/cmd/ksh93/sh/path.c	2015-02-24 13:25:19.360898415 -0800
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
    25
+++ INIT.2012-08-01/src/cmd/ksh93/sh/path.c	2015-03-05 11:17:55.650549374 -0800
5431772f7235 PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents: 4305
diff changeset
    26
@@ -534,6 +537,7 @@ static int	path_opentype(Shell_t *shp,co
805
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    27
 	if(fd>=0 && (fd = sh_iomovefd(fd)) > 0)
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    28
 	{
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    29
 		fcntl(fd,F_SETFD,FD_CLOEXEC);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    30
+		VALIDATE_FD(shp, fd);
23c55a2f8a8e 7165565 ksh93 in userland misses several bug fixes made in ON
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    31
 		shp->fdstatus[fd] |= IOCLEX;
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
 	return(fd);