about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--elf/dl-open.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6cc3f21e98..ead33bacc3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-27  Ben Collins  <bcollins@debian.org>
+
+	* elf/dl-open.c (_dl_open): Correctly set the new objname pointer
+	when reallocating the error strings.
+	Reported by Kalle Olavi Niemitalo <kon@iki.fi>
+
 2000-12-27  Ulrich Drepper  <drepper@redhat.com>
 
 	* dlfcn/Makefile (tests): Add errmsg1.
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 90355796ba..931e22625c 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -403,9 +403,9 @@ _dl_open (const char *file, int mode, const void *caller)
       len_errstring = strlen (errstring) + 1;
       if (objname == errstring + len_errstring)
 	{
-	  len_errstring += strlen (objname) + 1;
-	  local_errstring = alloca (len_errstring);
-	  memcpy (local_errstring, errstring, len_errstring);
+	  size_t total_len = len_errstring + strlen (objname) + 1;
+	  local_errstring = alloca (total_len);
+	  memcpy (local_errstring, errstring, total_len);
 	  objname = local_errstring + len_errstring;
 	}
       else