Sophie

Sophie

distrib > Mageia > 6 > armv7hl > media > core-updates-src > by-pkgid > a954455a16d4f7254951bfe34290f999 > files > 31

sssd-1.13.4-9.5.mga6.src.rpm

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);
         }