mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
Update.
* elf/Makefile (tests): Add loadfail. Add rules to build failobj.so. * elf/loadfail.c: New file. Test of failing to load object with RTLD_GLOBAL set. * elf/failobj.c: New file. Object which will fail to load.
This commit is contained in:
30
elf/loadfail.c
Normal file
30
elf/loadfail.c
Normal file
@ -0,0 +1,30 @@
|
||||
#include <dlfcn.h>
|
||||
#include <error.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
void *h;
|
||||
|
||||
if (dlopen ("testobj1.so", RTLD_GLOBAL | RTLD_NOW) == NULL
|
||||
|| dlopen ("testobj1.so", RTLD_GLOBAL | RTLD_NOW) == NULL
|
||||
|| dlopen ("testobj2.so", RTLD_GLOBAL | RTLD_NOW) == NULL
|
||||
|| dlopen ("testobj3.so", RTLD_GLOBAL | RTLD_NOW) == NULL
|
||||
|| dlopen ("testobj4.so", RTLD_GLOBAL | RTLD_NOW) == NULL
|
||||
|| dlopen ("testobj5.so", RTLD_GLOBAL | RTLD_NOW) == NULL)
|
||||
error (EXIT_FAILURE, 0, "failed to load shared object: %s", dlerror ());
|
||||
|
||||
h = dlopen ("failobj.so", RTLD_GLOBAL | RTLD_NOW);
|
||||
|
||||
printf ("h = %p, %s\n", h, h == NULL ? "ok" : "fail");
|
||||
|
||||
return h != NULL;
|
||||
}
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return 10;
|
||||
}
|
Reference in New Issue
Block a user