diff options
Diffstat (limited to 'elf')
-rw-r--r-- | elf/neededtest.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/elf/neededtest.c b/elf/neededtest.c index a33d243..e6e99bf 100644 --- a/elf/neededtest.c +++ b/elf/neededtest.c @@ -71,6 +71,7 @@ main (void) printf ("\nThis is what is in memory now:\n"); errors += check_loaded_objects (loaded); + printf( "Loading shared object neededobj3.so\n"); obj3 = dlopen( "neededobj3.so", RTLD_LAZY); if (obj3 == NULL) @@ -78,41 +79,44 @@ main (void) printf ("%s\n", dlerror ()); exit (1); } - printf ("And this is what is now in memory\n"); loaded[0] = "neededobj1.so"; loaded[1] = "neededobj2.so"; loaded[2] = "neededobj3.so"; errors += check_loaded_objects (loaded); + printf ("Now loading shared object neededobj2.so\n"); obj2[0] = dlopen ("neededobj2.so", RTLD_LAZY); - if (obj2 == NULL) + if (obj2[0] == NULL) { printf ("%s\n", dlerror ()); exit (1); } - printf ("After loading neededobj2.so once\n"); errors += check_loaded_objects (loaded); + printf ("And loading shared object neededobj2.so again\n"); obj2[1] = dlopen ("neededobj2.so", RTLD_LAZY); - if (obj2 == NULL) + if (obj2[1] == NULL) { printf ("%s\n", dlerror ()); exit (1); } - printf ("Again, this is what is in memory\n"); errors += check_loaded_objects (loaded); + printf ("Closing neededobj2.so for the first time\n"); dlclose (obj2[0]); errors += check_loaded_objects (loaded); + printf ("Closing neededobj3.so\n"); dlclose (obj3); loaded[2] = NULL; errors += check_loaded_objects (loaded); + printf ("Closing neededobj2.so for the second time\n"); dlclose (obj2[1]); loaded[0] = NULL; loaded[1] = NULL; errors += check_loaded_objects (loaded); + if (errors != 0) printf ("%d errors found\n", errors); return errors; |