diff options
author | Volker Lendecke <vl@samba.org> | 2010-05-10 12:05:01 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2010-05-10 14:11:14 +0200 |
commit | aa8d91ae8e6b4b813c0479f09be9e090aff047a9 (patch) | |
tree | b12426dab31c549e0635fef555a41bbb318646f8 | |
parent | 36e736871e28665ffcbbc4d0c87e1a2b60fcf0e0 (diff) | |
download | samba-aa8d91ae8e6b4b813c0479f09be9e090aff047a9.tar.gz samba-aa8d91ae8e6b4b813c0479f09be9e090aff047a9.tar.bz2 samba-aa8d91ae8e6b4b813c0479f09be9e090aff047a9.zip |
libwbclient: Fix a fd-leak at dlclose-time
__attribute__((destructor)) makes winbind_close_sock() being called at
dlclose() time.
Found while testing apache on Linux with mod_auth_pam.
Other platforms will have to find a different fix. One possibility would be to
always close the socket after each operation, but this badly sucks
performance-wise.
-rw-r--r-- | nsswitch/wb_common.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c index fbb550f139..9a3788a072 100644 --- a/nsswitch/wb_common.c +++ b/nsswitch/wb_common.c @@ -62,6 +62,9 @@ static void init_response(struct winbindd_response *response) /* Close established socket */ +#if HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR +__attribute__((destructor)) +#endif static void winbind_close_sock(void) { if (winbindd_fd != -1) { |