summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/auth/gensec/cyrus_sasl.c2
-rw-r--r--source4/auth/gensec/gensec.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/source4/auth/gensec/cyrus_sasl.c b/source4/auth/gensec/cyrus_sasl.c
index 34037a8087..661e12f455 100644
--- a/source4/auth/gensec/cyrus_sasl.c
+++ b/source4/auth/gensec/cyrus_sasl.c
@@ -308,7 +308,7 @@ static const struct gensec_security_ops gensec_sasl_security_ops = {
.wrap_packets = gensec_sasl_wrap_packets,
.unwrap_packets = gensec_sasl_unwrap_packets,
.have_feature = gensec_sasl_have_feature,
- .enabled = True,
+ .enabled = False,
.order = GENSEC_SASL
};
diff --git a/source4/auth/gensec/gensec.c b/source4/auth/gensec/gensec.c
index c4b1e2494a..0719fb2df6 100644
--- a/source4/auth/gensec/gensec.c
+++ b/source4/auth/gensec/gensec.c
@@ -1245,6 +1245,13 @@ const struct gensec_critical_sizes *gensec_interface_version(void)
return &critical_sizes;
}
+static int sort_gensec(struct gensec_security_ops **gs1, struct gensec_security_ops **gs2) {
+ SMB_ASSERT(talloc_get_type(*gs1, struct gensec_security_ops));
+ SMB_ASSERT(talloc_get_type(*gs2, struct gensec_security_ops));
+
+ return (*gs2)->order - (*gs1)->order;
+}
+
/*
initialise the GENSEC subsystem
*/
@@ -1264,6 +1271,8 @@ NTSTATUS gensec_init(void)
run_init_functions(shared_init);
talloc_free(shared_init);
+
+ qsort(generic_security_ops, gensec_num_backends, sizeof(*generic_security_ops), QSORT_CAST sort_gensec);
return NT_STATUS_OK;
}