diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | elf/dl-libc.c | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 7e77bc947e..0d2580d5b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2011-09-07 Ulrich Drepper <drepper@gmail.com> + * elf/dl-libc.c (dlerror_run): Pass back error code from + dl_catch_error. + [BZ #13123] * elf/dl-load.c (lose): Free l_origin if it is valid. diff --git a/elf/dl-libc.c b/elf/dl-libc.c index e440d016de..828588a8b1 100644 --- a/elf/dl-libc.c +++ b/elf/dl-libc.c @@ -45,10 +45,10 @@ dlerror_run (void (*operate) (void *), void *args) const char *last_errstring = NULL; bool malloced; - (void) GLRO(dl_catch_error) (&objname, &last_errstring, &malloced, - operate, args); + int result = (GLRO(dl_catch_error) (&objname, &last_errstring, &malloced, + operate, args) + ?: last_errstring != NULL); - int result = last_errstring != NULL; if (result && malloced) free ((char *) last_errstring); |