libwbclient: Fix a fd-leak at dlclose-time
authorVolker Lendecke <vl@samba.org>
Mon, 10 May 2010 10:05:01 +0000 (12:05 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 10 May 2010 12:11:14 +0000 (14:11 +0200)
__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.

nsswitch/wb_common.c

index fbb550f139aedbb0f1e16e32fea3173ee0d92bcc..9a3788a0722a9fa4e74c0b9be5af54b514cce461 100644 (file)
@@ -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) {