From 779b2cf5de3306f4120f968e394064869af6ec0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Mon, 20 Nov 1995 17:01:28 +0100
Subject: [PATCH] fixed an array bound write in replace_many

Rev: src/builtin_efuns.c:1.6
---
 src/builtin_efuns.c | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/src/builtin_efuns.c b/src/builtin_efuns.c
index 6405bbcffc..521705eff6 100644
--- a/src/builtin_efuns.c
+++ b/src/builtin_efuns.c
@@ -377,29 +377,11 @@ static char *combine_path(char *cwd,char *file)
   {
     cwd="/";
     file++;
-  }else{
-    
-    if(!cwd)
-    {
-#ifdef HAVE_GETWD
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1000
-#endif
-
-      cwd=(char *)getwd(my_cwd=(char *)xalloc(MAXPATHLEN+1));
-      if(!cwd)
-	fatal("Couldn't fetch current path.\n");
-#else
-#ifdef HAVE_GETCWD
-      my_cwd=cwd=(char *)getcwd(0,1000); 
-#else
-      /* maybe autoconf was wrong.... if not, insert your method here */
-      my_cwd=cwd=(char *)getcwd(0,1000); 
-#endif
-#endif
-    }
   }
+#ifdef DEBUG    
+  if(!cwd)
+    fatal("No cwd in combine_path!\n");
+#endif
 
   if(cwd[strlen(cwd)-1]=='/')
   {
@@ -1088,7 +1070,8 @@ struct lpc_string * replace_many(struct lpc_string *str,
 	  b=c;
 	}
       }
-      if(a<from->size && !MEMCMP(v[a].ind->str,s,v[a].ind->len))
+      if(a<from->size &&
+	 !low_quick_binary_strcmp(v[a].ind->str,v[a].ind->len,s,length))
       {
 	c=v[a].ind->len;
 	if(!c) c=1;
-- 
GitLab