From 37c1d615be2745d518792f1ca8a7c2a98ecb12b2 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 30 Oct 2009 12:06:49 -0400 Subject: Fix segfault when SASL is not used at all --- server/providers/ldap/sdap.c | 2 ++ server/providers/ldap/sdap_async.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'server/providers') diff --git a/server/providers/ldap/sdap.c b/server/providers/ldap/sdap.c index d0ea9ffd9..94cea885c 100644 --- a/server/providers/ldap/sdap.c +++ b/server/providers/ldap/sdap.c @@ -395,6 +395,8 @@ bool sdap_rootdse_sasl_mech_is_supported(struct sysdb_attrs *rootdse, struct ldb_val *val; int i; + if (!sasl_mech) return false; + for (i = 0; i < rootdse->num; i++) { if (strcasecmp(rootdse->a[i].name, "supportedSASLMechanisms")) { continue; diff --git a/server/providers/ldap/sdap_async.c b/server/providers/ldap/sdap_async.c index ae6806f43..dfdd267e8 100644 --- a/server/providers/ldap/sdap_async.c +++ b/server/providers/ldap/sdap_async.c @@ -3405,7 +3405,7 @@ static void sdap_cli_connect_done(struct tevent_req *subreq) sasl_mech = dp_opt_get_string(state->opts->basic, SDAP_SASL_MECH); - if (state->use_rootdse) { + if (sasl_mech && state->use_rootdse) { /* check if server claims to support GSSAPI */ if (!sdap_rootdse_sasl_mech_is_supported(state->rootdse, sasl_mech)) { @@ -3468,7 +3468,7 @@ static void sdap_cli_rootdse_done(struct tevent_req *subreq) sasl_mech = dp_opt_get_string(state->opts->basic, SDAP_SASL_MECH); - if (state->use_rootdse) { + if (sasl_mech && state->use_rootdse) { /* check if server claims to support GSSAPI */ if (!sdap_rootdse_sasl_mech_is_supported(state->rootdse, sasl_mech)) { -- cgit