diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/socket_wrapper.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index f6d7e24..539d27d 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -671,28 +671,34 @@ static void *_swrap_bind_symbol(enum swrap_lib lib, const char *fn_name) } #define swrap_bind_symbol_libc(sym_name) \ - SWRAP_LOCK(libc_symbol_binding); \ if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ - swrap.libc.symbols._libc_##sym_name.obj = \ - _swrap_bind_symbol(SWRAP_LIBC, #sym_name); \ - } \ - SWRAP_UNLOCK(libc_symbol_binding) + SWRAP_LOCK(libc_symbol_binding); \ + if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ + swrap.libc.symbols._libc_##sym_name.obj = \ + _swrap_bind_symbol(SWRAP_LIBC, #sym_name); \ + } \ + SWRAP_UNLOCK(libc_symbol_binding); \ + } #define swrap_bind_symbol_libsocket(sym_name) \ - SWRAP_LOCK(libc_symbol_binding); \ if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ - swrap.libc.symbols._libc_##sym_name.obj = \ - _swrap_bind_symbol(SWRAP_LIBSOCKET, #sym_name); \ - } \ - SWRAP_UNLOCK(libc_symbol_binding) + SWRAP_LOCK(libc_symbol_binding); \ + if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ + swrap.libc.symbols._libc_##sym_name.obj = \ + _swrap_bind_symbol(SWRAP_LIBSOCKET, #sym_name); \ + } \ + SWRAP_UNLOCK(libc_symbol_binding); \ + } #define swrap_bind_symbol_libnsl(sym_name) \ - SWRAP_LOCK(libc_symbol_binding); \ if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ - swrap.libc.symbols._libc_##sym_name.obj = \ - _swrap_bind_symbol(SWRAP_LIBNSL, #sym_name); \ - } \ - SWRAP_UNLOCK(libc_symbol_binding) + SWRAP_LOCK(libc_symbol_binding); \ + if (swrap.libc.symbols._libc_##sym_name.obj == NULL) { \ + swrap.libc.symbols._libc_##sym_name.obj = \ + _swrap_bind_symbol(SWRAP_LIBNSL, #sym_name); \ + } \ + SWRAP_UNLOCK(libc_symbol_binding); \ + } /**************************************************************************** * IMPORTANT |
