summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2011-07-28 15:15:26 -0400
committerStephen Gallagher <sgallagh@redhat.com>2011-07-29 10:18:34 -0400
commitc57b2068ff45f1d184d034e62c48a6bdd9d6eed7 (patch)
treec8ecb0cf3a0b91e3a0a2a7ac8f973aee9f4ef01f /src
parentb00113f8d5fcaf405364dfb5bc28a8076b6c10bd (diff)
downloadsssd-c57b2068ff45f1d184d034e62c48a6bdd9d6eed7.tar.gz
sssd-c57b2068ff45f1d184d034e62c48a6bdd9d6eed7.tar.xz
sssd-c57b2068ff45f1d184d034e62c48a6bdd9d6eed7.zip
sss_client: avoid leaking file descriptors
If a pam or nss module is dlcolse()d and unloaded we were leaking the file descriptor used to communicate to sssd in the process. Make sure the fucntion used to close the socket file descriptor is called on dlclose() Silence autoconf 2.28 warnings (Patch by Jakub Hrozek)
Diffstat (limited to 'src')
-rw-r--r--src/sss_client/common.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sss_client/common.c b/src/sss_client/common.c
index c17629a9f..5f6af418a 100644
--- a/src/sss_client/common.c
+++ b/src/sss_client/common.c
@@ -55,6 +55,9 @@
int sss_cli_sd = -1; /* the sss client socket descriptor */
struct stat sss_cli_sb; /* the sss client stat buffer */
+#if HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR
+__attribute__((destructor))
+#endif
static void sss_cli_close_socket(void)
{
if (sss_cli_sd != -1) {