mzidek-rh's pull request #20: "sss_override fails to export" was opened
PR body: """ Here is a fix + CI test for https://fedorahosted.org/sssd/ticket/3179. Michal """ See the full pull-request at https://github.com/SSSD/sssd/pull/20 ... or pull the PR as Git branch: git remote add ghsssd https://github.com/SSSD/sssd git fetch ghsssd pull/20/head:pr20 git checkout pr20
From 06d41f825c3a485659c4db1a273b0d881a017a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C5=BDidek?= <mzi...@redhat.com> Date: Wed, 7 Sep 2016 17:09:53 +0200 Subject: [PATCH 1/2] TOOLS: sss_override without name override sss_override failed to export user/group overrides if user had no overrides for name. Resolves: https://fedorahosted.org/sssd/ticket/3179 --- src/tools/sss_override.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/tools/sss_override.c b/src/tools/sss_override.c index d41da52..212bf9a 100644 --- a/src/tools/sss_override.c +++ b/src/tools/sss_override.c @@ -1159,12 +1159,14 @@ list_user_overrides(TALLOC_CTX *mem_ctx, } fqname = ldb_msg_find_attr_as_string(msgs[i], SYSDB_NAME, NULL); - ret = sss_parse_internal_fqname(tmp_ctx, fqname, &name, NULL); - if (ret != EOK) { - ret = ERR_WRONG_NAME_FORMAT; - goto done; + if (fqname != NULL) { + ret = sss_parse_internal_fqname(tmp_ctx, fqname, &name, NULL); + if (ret != EOK) { + ret = ERR_WRONG_NAME_FORMAT; + goto done; + } + objs[i].name = talloc_steal(objs, name); } - objs[i].name = talloc_steal(objs, name); objs[i].uid = ldb_msg_find_attr_as_uint(msgs[i], SYSDB_UIDNUM, 0); objs[i].gid = ldb_msg_find_attr_as_uint(msgs[i], SYSDB_GIDNUM, 0); @@ -1248,12 +1250,14 @@ list_group_overrides(TALLOC_CTX *mem_ctx, talloc_steal(objs, objs[i].orig_name); fqname = ldb_msg_find_attr_as_string(msgs[i], SYSDB_NAME, NULL); - ret = sss_parse_internal_fqname(tmp_ctx, fqname, &name, NULL); - if (ret != EOK) { - ret = ERR_WRONG_NAME_FORMAT; - goto done; + if (fqname != NULL) { + ret = sss_parse_internal_fqname(tmp_ctx, fqname, &name, NULL); + if (ret != EOK) { + ret = ERR_WRONG_NAME_FORMAT; + goto done; + } + objs[i].name = talloc_steal(objs, name); } - objs[i].name = talloc_steal(objs, name); objs[i].gid = ldb_msg_find_attr_as_uint(msgs[i], SYSDB_GIDNUM, 0); } From e21e78231e21c7959e4ce132297fcb31c67681ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C5=BDidek?= <mzi...@redhat.com> Date: Wed, 7 Sep 2016 18:23:16 +0200 Subject: [PATCH 2/2] TEST: Add regression test for ticket #3179 Resolves: https://fedorahosted.org/sssd/ticket/3179 --- src/tests/intg/ldap_local_override_test.py | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/tests/intg/ldap_local_override_test.py b/src/tests/intg/ldap_local_override_test.py index 63de836..74d0462 100644 --- a/src/tests/intg/ldap_local_override_test.py +++ b/src/tests/intg/ldap_local_override_test.py @@ -902,6 +902,43 @@ def test_regr_2757_override(ldap_conn, env_regr_2757_override): pwd.getpwnam('alias1') +# Regression test for bug 3179 +# sss_override fails to export user/group data if name is not overriden + + +@pytest.fixture +def env_regr_3179_override(request, ldap_conn): + + prepare_sssd(request, ldap_conn) + + # Add entries + ent_list = ldap_ent.List(ldap_conn.ds_inst.base_dn) + ent_list.add_user("user1", 10001, 20001) + ent_list.add_group("empty_group", 2002, []) + + create_ldap_fixture(request, ldap_conn, ent_list) + + # Assert entries are not overridden + ent.assert_passwd_by_name( + 'user1', + dict(name='user1', passwd='*', uid=10001, gid=20001)) + + # Override something something, but not name + subprocess.check_call(["sss_override", "user-add", "user1", + "-s", "/bin/myshell"]) + subprocess.check_call(["sss_override", "group-add", "empty_group", + "-g", "3000"]) + + restart_sssd() + + +def test_regr_3179_override(ldap_conn, env_regr_3179_override): + + # exporting should return 0 + subprocess.check_call(["sss_override", "user-export", "test_file"]) + subprocess.check_call(["sss_override", "group-export", "test_file"]) + + # Regression test for bug #2790 # sss_override --name doesn't work with RFC2307 and ghost users
_______________________________________________ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org