summaryrefslogtreecommitdiff
path: root/source4/auth/gensec/gensec.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/auth/gensec/gensec.c')
-rw-r--r--source4/auth/gensec/gensec.c9
1 files changed, 9 insertions, 0 deletions
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;
}