1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#include <dlfcn.h> int obj2func1 (int a __attribute__ ((unused))) { return 43; } int obj2func2 (int a) { return obj1func1 (a) + 10; } int preload (int a) { int (*fp) (int) = dlsym (RTLD_NEXT, "preload"); if (fp != NULL) return fp (a) + 10; return 10; }