From 01248645166911f3b3c19723f44a84c5a0599e34 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 18 Jun 2010 09:44:20 -0400 Subject: 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 --- src/providers/ldap/sdap_fd_events.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') 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; } -- cgit