about summary refs log tree commit diff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 0b752676b7..91b8c2a48d 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -420,7 +420,7 @@ _dl_init_paths (void)
 
       if (_dl_platform != NULL)
 	{
-	  char *tmp;
+	  char *tmp, *orig;
 
 	  relem->machdirnamelen = relem->dirnamelen + _dl_platformlen + 1;
 	  tmp = (char *) malloc (relem->machdirnamelen + 1);
@@ -428,11 +428,12 @@ _dl_init_paths (void)
 	    _dl_signal_error (ENOMEM, NULL,
 			      "cannot create cache for search path");
 
-	  relem->dirname = tmp;
+	  orig = tmp;
 	  tmp = __mempcpy (tmp, relem->dirname, relem->dirnamelen);
 	  tmp = __mempcpy (tmp, _dl_platform, _dl_platformlen);
 	  *tmp++ = '/';
 	  *tmp = '\0';
+	  relem->dirname = orig;
 
 	  relem->machdirstatus = unknown;