#define _GNU_SOURCE #include #include #include #include typedef void *(*dlopen_t)(const char *filename, int flags); void *dlopen(const char *filename, int flags) { void* result; dlopen_t dlopen = dlsym(RTLD_NEXT, "dlopen"); fprintf(stderr, "dlopen %s\n", filename); if (filename && strstr(filename, "/") == NULL && strstr(filename, "libcairo-gobject.so")) { fprintf(stderr, "dlopen blocked %s\n", filename); result = dlopen(filename, flags); if (result) { fprintf(stderr, "and would have been found! Aborting!\n"); /*int* x = 0; *x = 5; abort();*/ } //return NULL; } result = dlopen(filename, flags); return result; }