diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-01-03 04:50:22 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-01-03 04:50:22 +0000 |
commit | fb0dd050432c6e439618ebcabeab061733aa75bd (patch) | |
tree | 6ef8809b9c2f15c2d2c44d4f4f746646c9c4bc30 /dlfcn | |
parent | 3470b82679c30642a7a9e3b9e59cd12afb957761 (diff) | |
download | glibc-fb0dd050432c6e439618ebcabeab061733aa75bd.tar.gz |
Update.
* manual/Makefile (TEXI2PDF): Change to texi2dvi --pdf.
Suggested by Minko Markov <mmarkov@home.com>.
2001-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/powerpc/elf/start.S (__data_start): Make it global.
* sysdeps/powerpc/dl-machine.c (dl_reloc_overflow): Print the name of
the failing symbol.
(__process_machine_rela): Pass symbol to dl_reloc_overflow().
2001-01-02 Ben Collins <bcollins@debian.org>
* time/tzset.c (tzset_internal): Make sure we fall back to UTC
if TZ is not set and TZDEFAULT is not present.
2001-01-01 Ben Collins <bcollins@debian.org>
* string/strings.h: Make sure we declare our functions even if
string.h is already included, based on whether or not __USE_BSD is
defined.
2001-01-02 Ulrich Drepper <drepper@redhat.com>
* dlfcn/dlerror.c (dlerror): Handle call of dlerror() before any
other dlopen() and dlsym().
Based on a patch by Ben Collins <bcollins@debian.org>.
2001-01-02 Andreas Jaeger <aj@suse.de>
* dlfcn/errmsg1.c (main): Call dlerror initially.
Reported by Ben Collins <bcollins@debian.org>.
2001-01-02 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'dlfcn')
-rw-r--r-- | dlfcn/dlerror.c | 5 | ||||
-rw-r--r-- | dlfcn/errmsg1.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c index 6ce601d05b..59ee0b8c54 100644 --- a/dlfcn/dlerror.c +++ b/dlfcn/dlerror.c @@ -46,7 +46,7 @@ static void free_key_mem (void *mem); char * dlerror (void) { - char *buf; + char *buf = NULL; struct dl_action_result *result; /* Get error string. */ @@ -64,9 +64,8 @@ dlerror (void) free ((char *) result->errstring); result->errstring = NULL; } - buf = NULL; } - else + else if (result->errstring != NULL) { buf = (char *) result->errstring; if (__asprintf (&buf, result->errcode != 0 ? "%s: %s: %s" : "%s: %s", diff --git a/dlfcn/errmsg1.c b/dlfcn/errmsg1.c index a7bb9b8272..b455ea97a5 100644 --- a/dlfcn/errmsg1.c +++ b/dlfcn/errmsg1.c @@ -27,6 +27,12 @@ main (void) void *h; const char *s; + /* Test that dlerror works initially. */ + s = dlerror (); + printf ("dlerror() without prior dl*() call returned: %s\n", s); + if (s != NULL) + return 1; + h = dlopen ("errmsg1mod.so", RTLD_NOW); if (h != NULL) { |