diff options
-rw-r--r-- | source4/auth/gensec/cyrus_sasl.c | 2 | ||||
-rw-r--r-- | source4/auth/gensec/gensec.c | 9 |
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; } |