components/ksh93/patches/CR7036535.patch
author Vladimir Marek <Vladimir.Marek@oracle.com>
Mon, 25 Nov 2013 17:42:18 +0100
branchs11u1-sru
changeset 2846 308d0c192664
parent 789 5f074ca23733
child 6073 99c2bf34d78a
permissions -rw-r--r--
17714341 /usr/bin/cd core dumps during string substitution

--- a/src/cmd/ksh93/sh/path.c	Mon Nov 22 20:55:38 2010
+++ b/src/cmd/ksh93/sh/path.c	Tue Sep 27 10:48:45 2011
@@ -1430,7 +1435,7 @@
 		len = strlen(name);
 	for(pp=first; pp; pp=pp->next)
 	{
-		if(memcmp(name,pp->name,len)==0 && (pp->name[len]==':' || pp->name[len]==0))
+		if(strncmp(name,pp->name,len)==0 && (pp->name[len]==':' || pp->name[len]==0))
 		{
 			pp->flags |= flag;
 			return(first);
@@ -1740,7 +1745,7 @@
 	register Pathcomp_t *pp=first;
 	while(pp)
 	{
-		if(memcmp(name,pp->name,pp->len)==0 && name[pp->len]==c) 
+		if(strncmp(name,pp->name,pp->len)==0 && name[pp->len]==c) 
 			return(pp);
 		pp = pp->next;
 	}
--- a/src/cmd/ksh93/sh/nvtree.c	Sun Jan  2 17:45:14 2011
+++ b/src/cmd/ksh93/sh/nvtree.c	Fri Jul 22 00:30:31 2011
@@ -26,6 +26,9 @@
  *   AT&T Labs
  *
  */
+/*
+ * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+ */
 
 #include	"defs.h"
 #include	"name.h"
@@ -188,7 +191,7 @@
 		{
 			char *cp = nv_name(dp->hp);
 			c = strlen(cp);
-			if(memcmp(name,cp,c) || name[c]!='[')
+			if(strncmp(name,cp,c) || name[c]!='[')
 				dp->hp = (Namval_t*)dtnext(dp->root,dp->hp);
 			else
 			{
@@ -266,7 +269,7 @@
 {
 	if(dp->nextnode)
 		return((*dp->nextnode)(dp->hp,dp->root,dp->fun));
-	if(dp->len && memcmp(dp->data, dp->hp->nvname, dp->len))
+	if(dp->len && strncmp(dp->data, dp->hp->nvname, dp->len))
 		return(0);
 	return((Namval_t*)dtnext(dp->root,dp->hp));
 }
@@ -311,7 +314,7 @@
 					dp->hp = (*dp->nextnode)(np,(Dt_t*)0,dp->fun);
 			}
 			sh.last_table = last_table;
-			if(!dp->len || memcmp(cp,dp->data,dp->len)==0)
+			if(!dp->len || strncmp(cp,dp->data,dp->len)==0)
 			{
 				if((nfp=nextdisc(np)) && (nfp->disc->getval||nfp->disc->getnum) && nv_isvtree(np) && strcmp(cp,dp->data))
 					nfp = 0;
@@ -861,7 +864,7 @@
 					continue;
 				break;
 			}
-			else if(outfile && !wp->nofollow && argv[1] && memcmp(arg,argv[1],l=strlen(arg))==0 && argv[1][l]=='[')
+			else if(outfile && !wp->nofollow && argv[1] && strncmp(arg,argv[1],l=strlen(arg))==0 && argv[1][l]=='[')
 			{
 				int	k=1;
 				Namarr_t *ap=0;