diff test/dynload_plain/dynload_plain.c @ 223:7076f551faf5

- dynload mach-o handling fixes for 64bit platforms - dynload test code improvements - dynload(3) clarification
author Tassilo Philipp
date Sat, 15 Apr 2017 15:21:37 +0200
parents cb56f077fd37
children 8216c86b4cbc
line wrap: on
line diff
--- a/test/dynload_plain/dynload_plain.c	Fri Apr 14 21:23:22 2017 +0200
+++ b/test/dynload_plain/dynload_plain.c	Sat Apr 15 15:21:37 2017 +0200
@@ -46,14 +46,17 @@
     "/lib32/libc.so",
     "/lib32/libc.so.6",
     "/lib32/libc.so.7",
+	"/usr/lib/system/libsystem_c.dylib",
     "/usr/lib/libc.dylib",
     "C:\\Windows\\system32\\msvcrt.dll"
   };
 
 
   for(i=0; i<(sizeof(clibs)/sizeof(const char*)); ++i) {
-    if(access(clibs[i], F_OK) != -1)
+    if(access(clibs[i], F_OK) != -1) {
       path = clibs[i];
+      break;
+    }
   }
 
   if(path) {
@@ -100,7 +103,7 @@
       }
       printf("printf symbol found by iteration: %d\n", i<n);
 
-      name = dlSymsName(pSyms, i);
+      name = (i<n) ? dlSymsName(pSyms, i) : NULL;
       r += (name && strcmp(name, "printf") == 0); // check if we can lookup "printf" by index
       printf("printf symbol name by index: %s\n", name?name:"");