diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index ec8321fe0afcf35660e39a2954e7f342f530d9cc..cc9e17d5756de135df55bdddf2e40cf6801310b0 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -7831,10 +7831,18 @@ void swrap_destructor(void) SAFE_FREE(sockets); - if (swrap.libc.handle != NULL) { + if (swrap.libc.handle != NULL +#ifdef RTLD_NEXT + && swrap.libc.handle != RTLD_NEXT +#endif + ) { dlclose(swrap.libc.handle); } - if (swrap.libc.socket_handle) { + if (swrap.libc.socket_handle +#ifdef RTLD_NEXT + && swrap.libc.socket_handle != RTLD_NEXT +#endif + ) { dlclose(swrap.libc.socket_handle); } }