components/ksh93/patches/225-17817727.patch
author Lijo George<lijo.x.george@oracle.com>
Thu, 23 Feb 2017 01:05:08 -0800
changeset 7683 7955769fefe6
parent 4268 d723f8ed85fe
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:
4268
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     1
This fix is from the community, details in the following location.
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     2
http://lists.research.att.com/pipermail/ast-users/2013q4/004481.html
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     3
---
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     4
--- a/src/cmd/ksh93/sh/streval.c	2014-01-22 10:39:11.075964500 +0100
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     5
+++ b/src/cmd/ksh93/sh/streval.c	2014-01-22 13:21:35.999184260 +0100
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     6
@@ -366,13 +366,17 @@
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     7
 				num = (Sflong_t)(sp[-1]) / (Sflong_t)(num);
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     8
 			break;
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
     9
 		    case A_LSHIFT:
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    10
-			if(tp[-1]==2)
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    11
+			if((long)num >= CHAR_BIT*sizeof(Sfulong_t))
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    12
+				num = 0;
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    13
+			else if(tp[-1]==2)
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    14
 				num = U2F((Sfulong_t)(sp[-1]) << (long)(num));
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    15
 			else
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    16
 				num = (Sflong_t)(sp[-1]) << (long)(num);
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    17
 			break;
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    18
 		    case A_RSHIFT:
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    19
-			if(tp[-1]==2)
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    20
+			if((long)num >= CHAR_BIT*sizeof(Sfulong_t))
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    21
+				num = 0;
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    22
+			else if(tp[-1]==2)
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    23
 				num = U2F((Sfulong_t)(sp[-1]) >> (long)(num));
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    24
 			else
d723f8ed85fe PSARC/2014/162 ksh93 update to 2012-08-01
Lijo George<lijo.x.george@oracle.com>
parents:
diff changeset
    25
 				num = (Sflong_t)(sp[-1]) >> (long)(num);