From 28792523a01a7d21bcc8931794164f253e691a68 Mon Sep 17 00:00:00 2001 From: Tomas Halman <thalman@redhat.com> Date: Mon, 3 Dec 2018 14:11:31 +0100 Subject: [PATCH] nss: sssd returns '/' for emtpy home directories For empty home directory in passwd file sssd returns "/". Sssd should respect system behaviour and return the same as nsswitch "files" module - return empty string. Resolves: https://pagure.io/SSSD/sssd/issue/3901 Reviewed-by: Simo Sorce <simo@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> (cherry picked from commit 90f32399b4100ce39cf665649fde82d215e5eb49) --- src/confdb/confdb.c | 9 +++++++++ src/responder/nss/nsssrv_cmd.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/confdb/confdb.c b/src/confdb/confdb.c index a3eb9c66d9..17bb4f8274 100644 --- a/src/confdb/confdb.c +++ b/src/confdb/confdb.c @@ -1301,6 +1301,15 @@ static int confdb_get_domain_internal(struct confdb_ctx *cdb, ret = ENOMEM; goto done; } + } else { + if (strcasecmp(domain->provider, "ad") == 0) { + /* ad provider default */ + domain->fallback_homedir = talloc_strdup(domain, "/home/%d/%u"); + if (!domain->fallback_homedir) { + ret = ENOMEM; + goto done; + } + } } tmp = ldb_msg_find_attr_as_string(res->msgs[0], diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index af9e74fc86..86fa4ec465 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -460,7 +460,7 @@ static int fill_pwent(struct sss_packet tmpstr = get_homedir_override(tmp_ctx, msg, nctx, dom, &homedir_ctx); if (!tmpstr) { - to_sized_string(&homedir, "/"); + to_sized_string(&homedir, ""); } else { to_sized_string(&homedir, tmpstr); }