/*----------------------------------------------------------------------------- dlmopen - interposer func -----------------------------------------------------------------------------*/ void * dlmopen(Lmid_t lmid, const char *pathname, int mode) { if (!orig_dlmopen) orig_dlmopen = (void* (*)(Lmid_t, const char*, int))dlsym(RTLD_NEXT, "dlmopen"); // printf("dlmopen: %s\n", pathname); void* result = orig_dlmopen(lmid, pathname, mode); mvee_refresh_hook_lists(); return result; }
void * dlmopen(Lmid_t lmid, const char *filename, int flags) { void *(*orig_dlmopen)(Lmid_t, const char *, int); void *handle; orig_dlmopen = _env_dump_resolve_symbol_by_name("dlmopen"); handle = orig_dlmopen(lmid, filename, flags); if (!_env_ignored) _dlopen_check_result(handle, filename, flags); return handle; }