From 93f3fc54e462958c3bc88ebf586be99fb703347b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 10 Feb 2012 08:13:40 +1100 Subject: [PATCH] gensec: set flag to continue in outer for loop in gensec_use_kerberos_mechs This should be the correct fix for the valgrind erorr Volker found in 744ed53a62037a659133ccd4de2065491208ae7d. This fix avoids putting SPNEGO into the list twice when we are in the CRED_DONT_USE_KERBEROS case. Andrew Bartlett --- auth/gensec/gensec_start.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/auth/gensec/gensec_start.c b/auth/gensec/gensec_start.c index 08b2fb68cb1..e9ccb16b0c1 100644 --- a/auth/gensec/gensec_start.c +++ b/auth/gensec/gensec_start.c @@ -83,14 +83,18 @@ _PUBLIC_ struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ j = 0; for (i=0; old_gensec_list && old_gensec_list[i]; i++) { int oid_idx; - + bool found_spnego = false; for (oid_idx = 0; old_gensec_list[i]->oid && old_gensec_list[i]->oid[oid_idx]; oid_idx++) { if (strcmp(old_gensec_list[i]->oid[oid_idx], GENSEC_OID_SPNEGO) == 0) { new_gensec_list[j] = old_gensec_list[i]; j++; + found_spnego = true; break; } } + if (found_spnego) { + continue; + } switch (use_kerberos) { case CRED_DONT_USE_KERBEROS: if (old_gensec_list[i]->kerberos == false) { -- 2.34.1