about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-04-23 22:45:20 +0000
committerUlrich Drepper <drepper@redhat.com>1998-04-23 22:45:20 +0000
commitaf3878dff0963da299b6b54d3a76f9c1a68aac27 (patch)
treedf3f2b6b5641eb41487f03869744c134676177cb /elf
parentdc9335c14f91623093bf0c7db855e9d1fbc67071 (diff)
downloadglibc-af3878dff0963da299b6b54d3a76f9c1a68aac27.tar.gz
glibc-af3878dff0963da299b6b54d3a76f9c1a68aac27.tar.xz
glibc-af3878dff0963da299b6b54d3a76f9c1a68aac27.zip
(dlerror): Don't assume that __libc_internal_tsd_get is defined. __libc_getspecific is already well-protected, so just use it directly.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-load.c15
-rw-r--r--elf/dlerror.c9
2 files changed, 13 insertions, 11 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 6433b32983..16534f4e1c 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -182,9 +182,13 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
       struct r_search_path_elem *dirp;
       size_t len = strlen (cp);
 
-      /* `strsep' can pass an empty string.  */
+      /* `strsep' can pass an empty string.  This has to be
+         interpreted as `use the current directory'. */
       if (len == 0)
-	continue;
+	{
+	  static char curwd[2];
+	  cp = strcpy (curwd, ".");
+	}
 
       /* Remove trailing slashes.  */
       while (len > 1 && cp[len - 1] == '/')
@@ -331,8 +335,11 @@ _dl_init_paths (const char *llp)
       const char *cp = llp;
       nllp = 1;
       while (*cp)
-	if (*cp++ == ':')
-	  ++nllp;
+	{
+	  if (*cp == ':' || *cp == ';')
+	    ++nllp;
+	  ++cp;
+	}
     }
   else
     nllp = 0;
diff --git a/elf/dlerror.c b/elf/dlerror.c
index ba25611bbb..4716bdd272 100644
--- a/elf/dlerror.c
+++ b/elf/dlerror.c
@@ -56,13 +56,8 @@ dlerror (void)
     }
 
   /* Get error string.  */
-  if (__libc_internal_tsd_get != NULL)
-    {
-      result = (struct dl_action_result *) __libc_getspecific (key);
-      if (result == NULL)
-	result = &last_result;
-    }
-  else
+  result = (struct dl_action_result *) __libc_getspecific (key);
+  if (result == NULL)
     result = &last_result;
 
   if (! result->errstring)