summaryrefslogtreecommitdiff
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)
(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)