summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/ldap_id_enum.c
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2010-05-06 11:23:23 -0400
committerStephen Gallagher <sgallagh@redhat.com>2010-05-07 17:14:31 -0400
commit9e99e3c5c45b20189e76e4d2546966ff1fb3ce40 (patch)
tree237e8be9cbfdfc3257c6749b4033be208b1133aa /src/providers/ldap/ldap_id_enum.c
parentd293186e98a9bd68c8961980978485adae082788 (diff)
downloadsssd-9e99e3c5c45b20189e76e4d2546966ff1fb3ce40.tar.gz
sssd-9e99e3c5c45b20189e76e4d2546966ff1fb3ce40.tar.xz
sssd-9e99e3c5c45b20189e76e4d2546966ff1fb3ce40.zip
Fix segfault in GSSAPI reconnect code
Also clean up some duplicated code into a single common routine sdap_account_info_common_done()
Diffstat (limited to 'src/providers/ldap/ldap_id_enum.c')
-rw-r--r--src/providers/ldap/ldap_id_enum.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/providers/ldap/ldap_id_enum.c b/src/providers/ldap/ldap_id_enum.c
index d86b38d0f..89ca2de7a 100644
--- a/src/providers/ldap/ldap_id_enum.c
+++ b/src/providers/ldap/ldap_id_enum.c
@@ -234,7 +234,9 @@ fail:
(int)err, strerror(err)));
if (sdap_check_gssapi_reconnect(state->ctx)) {
- state->ctx->gsh->connected = false;
+ if (state->ctx->gsh) {
+ state->ctx->gsh->connected = false;
+ }
ret = ldap_id_enum_users_restart(req);
if (ret == EOK) return;
}
@@ -282,7 +284,9 @@ static void ldap_id_enum_groups_done(struct tevent_req *subreq)
fail:
/* check if credentials are expired otherwise go offline on failures */
if (sdap_check_gssapi_reconnect(state->ctx)) {
- state->ctx->gsh->connected = false;
+ if (state->ctx->gsh) {
+ state->ctx->gsh->connected = false;
+ }
ret = ldap_id_enum_groups_restart(req);
if (ret == EOK) return;
}