From bd71f19d41272ea8b6dd92c9dc8e101d24eb7cc9 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Mon, 9 Jul 2012 15:18:28 -0400 Subject: Fix segfault when using local provider The name context was not being initialized for local provider domains because it was handled after skipping over the back-end initialization routine. This patch moves the name context init routine to occur earlier. https://fedorahosted.org/sssd/ticket/1412 --- src/responder/common/responder_common.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/responder/common/responder_common.c b/src/responder/common/responder_common.c index e44c351ad..438ca2cea 100644 --- a/src/responder/common/responder_common.c +++ b/src/responder/common/responder_common.c @@ -791,12 +791,6 @@ int sss_process_init(TALLOC_CTX *mem_ctx, } for (dom = rctx->domains; dom; dom = dom->next) { - - /* skip local domain, it doesn't have a backend */ - if (strcasecmp(dom->provider, "local") == 0) { - continue; - } - ret = sss_names_init(rctx->cdb, rctx->cdb, dom->name, &dom->names); if (ret != EOK) { DEBUG(SSSDBG_FATAL_FAILURE, @@ -805,6 +799,11 @@ int sss_process_init(TALLOC_CTX *mem_ctx, return ret; } + /* skip local domain, it doesn't have a backend */ + if (strcasecmp(dom->provider, "local") == 0) { + continue; + } + ret = sss_dp_init(rctx, dp_intf, cli_name, dom); if (ret != EOK) { DEBUG(0, ("fatal error setting up backend connector\n")); -- cgit