mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 14:20:07 +00:00
support: Use dlerror to detect NULL symbols in xdlsym
This commit is contained in:
parent
b433334065
commit
3b93559585
@ -1,3 +1,8 @@
|
||||
2019-02-06 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* support/xdlfcn.c (xdlopen, xdlclose): Do not call dlerror.
|
||||
(xdlsym): Use dlerror to detect a NULL symbol.
|
||||
|
||||
2019-02-06 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Do not include
|
||||
|
@ -28,22 +28,25 @@ xdlopen (const char *filename, int flags)
|
||||
if (dso == NULL)
|
||||
FAIL_EXIT1 ("error: dlopen: %s\n", dlerror ());
|
||||
|
||||
/* Clear any errors. */
|
||||
dlerror ();
|
||||
|
||||
return dso;
|
||||
}
|
||||
|
||||
void *
|
||||
xdlsym (void *handle, const char *symbol)
|
||||
{
|
||||
/* Clear any pending errors. */
|
||||
dlerror ();
|
||||
|
||||
void *sym = dlsym (handle, symbol);
|
||||
|
||||
if (sym == NULL)
|
||||
FAIL_EXIT1 ("error: dlsym: %s\n", dlerror ());
|
||||
|
||||
/* Clear any errors. */
|
||||
dlerror ();
|
||||
{
|
||||
const char *error = dlerror ();
|
||||
if (error != NULL)
|
||||
FAIL_EXIT1 ("error: dlsym: %s\n", error);
|
||||
/* If there was no error, we found a NULL symbol. Return the
|
||||
NULL value in this case. */
|
||||
}
|
||||
|
||||
return sym;
|
||||
}
|
||||
@ -53,7 +56,4 @@ xdlclose (void *handle)
|
||||
{
|
||||
if (dlclose (handle) != 0)
|
||||
FAIL_EXIT1 ("error: dlclose: %s\n", dlerror ());
|
||||
|
||||
/* Clear any errors. */
|
||||
dlerror ();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user