diff -u sssd-1.11.5/debian/changelog sssd-1.11.5/debian/changelog --- sssd-1.11.5/debian/changelog +++ sssd-1.11.5/debian/changelog @@ -1,3 +1,11 @@ +sssd (1.11.5-1ubuntu2) trusty; urgency=medium + + * Cherry-pick fix for crash with samba4 domains. (LP: #1305303) + * Always pass -i to sssd in the upstart job to force it to stay in the + foreground. + + -- Stéphane Graber Wed, 09 Apr 2014 18:02:39 -0400 + sssd (1.11.5-1ubuntu1) trusty; urgency=medium * Merge from debian unstable. diff -u sssd-1.11.5/debian/patches/series sssd-1.11.5/debian/patches/series --- sssd-1.11.5/debian/patches/series +++ sssd-1.11.5/debian/patches/series @@ -1 +1 @@ -#placeholder +fix-samba4-crash.patch diff -u sssd-1.11.5/debian/sssd-common.sssd.default sssd-1.11.5/debian/sssd-common.sssd.default --- sssd-1.11.5/debian/sssd-common.sssd.default +++ sssd-1.11.5/debian/sssd-common.sssd.default @@ -10 +10 @@ -DAEMON_OPTS="-f" +DAEMON_OPTS="-i -f" diff -u sssd-1.11.5/debian/sssd-common.sssd.upstart.in sssd-1.11.5/debian/sssd-common.sssd.upstart.in --- sssd-1.11.5/debian/sssd-common.sssd.upstart.in +++ sssd-1.11.5/debian/sssd-common.sssd.upstart.in @@ -24,4 +24,8 @@ . "$DEFAULTFILE" fi + + # sssd dislikes having /dev/null as stdin + exec < /dev/zero + exec sssd $DAEMON_OPTS end script only in patch2: unchanged: --- sssd-1.11.5.orig/debian/patches/fix-samba4-crash.patch +++ sssd-1.11.5/debian/patches/fix-samba4-crash.patch @@ -0,0 +1,32 @@ +From 668aafd37c44334328e571e4645459e17bd2bb3c Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Wed, 9 Apr 2014 17:34:15 -0400 +Subject: [PATCH] AD Provider: Fix crash looking up forest on Samba 4 + +We were assuming that the forest had been looked up by netlogon, but +this is not available on Samba 4 domains. We need to check that the +forest is NULL and force the lookup. + +Resolves: +https://fedorahosted.org/sssd/ticket/2311 +--- + src/providers/ad/ad_subdomains.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/providers/ad/ad_subdomains.c b/src/providers/ad/ad_subdomains.c +index 3c841788d5d88069d79a9438b72f57c8c2e0ffda..a797ceb915e454a2a7fbf577817d2985be2d14a6 100644 +--- a/src/providers/ad/ad_subdomains.c ++++ b/src/providers/ad/ad_subdomains.c +@@ -587,7 +587,8 @@ static void ad_subdomains_master_dom_done(struct tevent_req *req) + goto done; + } + +- if (strcasecmp(ctx->sd_ctx->be_ctx->domain->name, ctx->forest) != 0) { ++ if (ctx->forest == NULL || ++ strcasecmp(ctx->sd_ctx->be_ctx->domain->name, ctx->forest) != 0) { + DEBUG(SSSDBG_TRACE_FUNC, + ("SSSD needs to look up the forest root domain\n")); + ret = ad_subdomains_get_root(ctx); +-- +1.9.0 +