Bug#430732: dlsym with RTLD_NEXT does not set dlerror in error case.
I looked in the sources to find a useful testcase, and noticed that
there is no testcase for RTLD_NEXT case. It fails.
$ LD_LIBRARY_PATH=. ./a.out
dlerror() didn't return a string
--- glibc/glibc-2.5/glibc-2.5/elf/resolvfail.c 1999-08-03 04:42:00.000000000 +0900
+++ resolvfail.c 2007-06-27 06:58:50.498497545 +0900
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
#include <dlfcn.h>
#include <stdio.h>
@@ -16,7 +17,7 @@
}
for (n = 0; n < 10000; ++n)
- if (dlsym (d, "does not exist") != NULL)
+ if (dlsym (RTLD_NEXT, "does not exist") != NULL)
{
puts ("dlsym() did not fail");
return 1;
regards,
junichi
--
dancer@{debian.org,netfort.gr.jp} Debian Project
Reply to: