Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1:Update
sssd
0001-sss_client-avoid-leaking-file-descriptors....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-sss_client-avoid-leaking-file-descriptors.patch of Package sssd
From 151681511c4519463c2fe10c656db29a12c01821 Mon Sep 17 00:00:00 2001 From: Simo Sorce <ssorce@redhat.com> Date: Thu, 28 Jul 2011 15:15:26 -0400 Subject: 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) diff --git a/configure.ac b/configure.ac index 84b83eb..c0b7f8f 100644 --- a/configure.ac +++ b/configure.ac @@ -170,6 +170,18 @@ AC_CHECK_HEADERS([sys/inotify.h]) AC_CHECK_HEADERS([sasl/sasl.h],,AC_MSG_ERROR([Could not find SASL headers])) +AC_CACHE_CHECK([whether compiler supports __attribute__((destructor))], + sss_client_cv_attribute_destructor, + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([__attribute__((destructor)) static void cleanup(void) { }])], + sss_client_cv_attribute_destructor=yes) + ]) + +if test x"$sss_client_cv_attribute_destructor" = xyes ; then + AC_DEFINE(HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR, 1, + [whether compiler supports __attribute__((destructor))]) +fi + PKG_CHECK_MODULES([CHECK], [check >= 0.9.5], [have_check=1], [have_check=]) if test x$have_check = x; then AC_MSG_WARN([Without the 'CHECK' libraries, you will be unable to run all tests in the 'make check' suite]) diff --git a/src/sss_client/common.c b/src/sss_client/common.c index c17629a..5f6af41 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) { -- 1.7.3.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor