diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2015-10-22 10:30:12 +0200 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2015-11-05 10:31:46 +0100 |
commit | a10f67d4c64f3b1243de5d86a996475361adf0ac (patch) | |
tree | 02aea92ed38fc24bc49fbb42630304d6710a1905 /src/util/sss_ssh.h | |
parent | 8cfc3d5aeea21a3b8d1801aeef4866a4d3e7add0 (diff) | |
download | sssd-a10f67d4c64f3b1243de5d86a996475361adf0ac.tar.gz sssd-a10f67d4c64f3b1243de5d86a996475361adf0ac.tar.xz sssd-a10f67d4c64f3b1243de5d86a996475361adf0ac.zip |
LDAP: Fix leak of file descriptors
The state "struct sss_ldap_init_state" contains socket
created in function sss_ldap_init_send. We register callback
sdap_async_sys_connect_timeout for handling issue with connection
The tevent request "sss_ldap_init_send" is usually (nested) subrequest
of "struct resolve_service_state" related request created in fucntion
fo_resolve_service_send. Function fo_resolve_service_send also register
timeout callback fo_resolve_service_timeout to state "struct
resolve_service_state".
It might happen that fo_resolve_service_timeout will be called before
sss_ldap_init_send timeout and we could not handle tiemout error
for state "struct sss_ldap_init_state" and therefore created socket
was not closed.
We tried to release resources in function sdap_handle_release.
But the structure "struct sdap_handle" had not been initialized yet
with LDAP handle and therefore associated file descriptor could not be closed.
[fo_resolve_service_timeout] (0x0080): Service resolving timeout reached
[fo_resolve_service_recv] (0x0020): TEVENT_REQ_RETURN_ON_ERROR ret[110]
[sdap_handle_release] (0x2000): Trace: sh[0x7f6713410270], connected[0], ops[(nil)], ldap[(nil)], destructor_lock[0], release_memory
[be_resolve_server_done] (0x1000): Server resolution failed: 14
[be_resolve_server_recv] (0x0020): TEVENT_REQ_RETURN_ON_ERROR ret[14]
[check_online_callback] (0x0100): Backend returned: (1, 0, <NULL>) [Provider is Offline (Success)]
Resolves:
https://fedorahosted.org/sssd/ticket/2792
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/util/sss_ssh.h')
0 files changed, 0 insertions, 0 deletions