diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2010-06-18 09:44:20 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-06-18 10:00:58 -0400 |
commit | 01248645166911f3b3c19723f44a84c5a0599e34 (patch) | |
tree | fb672193b6316ee7594583e1a1d0f2ae66909cd4 /src/providers | |
parent | b9303e06737e6a024239e9c9a6f05fb9ed0a977e (diff) | |
download | sssd2-01248645166911f3b3c19723f44a84c5a0599e34.tar.gz sssd2-01248645166911f3b3c19723f44a84c5a0599e34.tar.xz sssd2-01248645166911f3b3c19723f44a84c5a0599e34.zip |
Protect against segfault in remove_ldap_connection_callbacks
If sdap_mark_offline() is called before a live connection is
established, sdap_fd_events could be NULL, causing a segfault when
remove_ldap_connection_callbacks() attempts to free the
sdap_fd_events->conncb
https://fedorahosted.org/sssd/ticket/545
Diffstat (limited to 'src/providers')
-rw-r--r-- | src/providers/ldap/sdap_fd_events.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_fd_events.c b/src/providers/ldap/sdap_fd_events.c index 45c5bedc..347cf8b8 100644 --- a/src/providers/ldap/sdap_fd_events.c +++ b/src/providers/ldap/sdap_fd_events.c @@ -50,7 +50,12 @@ int get_fd_from_ldap(LDAP *ldap, int *fd) int remove_ldap_connection_callbacks(struct sdap_handle *sh) { #ifdef HAVE_LDAP_CONNCB - talloc_zfree(sh->sdap_fd_events->conncb); + /* sdap_fd_events might be NULL here if sdap_mark_offline() + * was called before a connection was established. + */ + if (sh->sdap_fd_events) { + talloc_zfree(sh->sdap_fd_events->conncb); + } #endif return EOK; } |