URL: https://github.com/SSSD/sssd/pull/202 Author: celestian Title: #202: T3315 infopipe group users master Action: opened
PR body: """ Reproducer is: ``` # PREPARING ipa user-add --first=Test --last=User [email protected] test_user ipa group-add test_group # REPRODUCER systemctl daemon-reload sudo su -c "truncate -s0 /var/log/sssd/*.log" sudo su -c "rm -f /var/lib/sss/db/*" sudo su -c "rm -f /var/lib/sss/mc/*" sudo systemctl restart sssd.service ipa group-add-member --users=test_user test_group sss_cache -UG getent group test_group # getent show user test_user in test_group, but dbus call doesn't: dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe \ /org/freedesktop/sssd/infopipe/Groups \ org.freedesktop.sssd.infopipe.Groups.FindByName \ string:test_group # command above returns <RESULT_OBJECT> # We need to update group in cache because method "org.freedesktop.DBus.Properties.GetAll" # doesn't update records (<-- this should be better commented) dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe \ <RESULT_OBJECT> \ org.freedesktop.sssd.infopipe.Groups.Group.UpdateMemberList # --> this call doesn't work without patch "IFP: Parse ghost name in Group.UpdateMemberList" # after this call group is updated in cache and we can call: dbus-send --system --print-reply --dest=org.freedesktop.sssd.infopipe \ <RESULT_OBJECT> \ org.freedesktop.DBus.Properties.GetAll \ string:"org.freedesktop.sssd.infopipe.Groups.Group" # We expect test_user in result users array. # CLEANING ipa group-del test_group ipa user-del test_user ``` """ To pull the PR as Git branch: git remote add ghsssd https://github.com/SSSD/sssd git fetch ghsssd pull/202/head:pr202 git checkout pr202
From 3560f62d331db55c903a394fbcb02351e896dee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C4=8Cech?= <[email protected]> Date: Thu, 16 Mar 2017 15:26:34 +0100 Subject: [PATCH 1/2] IFP: Parse ghost name in Group.UpdateMemberList Ghost users are stored in FQ name form in cache. The function cache_req_user_by_name_send() expects original name. Resolves: https://pagure.io/SSSD/sssd/issue/3315 --- src/responder/ifp/ifp_groups.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/responder/ifp/ifp_groups.c b/src/responder/ifp/ifp_groups.c index 94d1e84..c66c0e8 100644 --- a/src/responder/ifp/ifp_groups.c +++ b/src/responder/ifp/ifp_groups.c @@ -592,6 +592,8 @@ errno_t resolv_ghosts_step(struct tevent_req *req) { struct resolv_ghosts_state *state; struct tevent_req *subreq; + const char *ghost_name; + errno_t ret; state = tevent_req_data(req, struct resolv_ghosts_state); @@ -599,10 +601,19 @@ errno_t resolv_ghosts_step(struct tevent_req *req) return EOK; } + ret = sss_parse_internal_fqname(state, state->ghosts[state->index], + &ghost_name, NULL); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "sss_parse_internal_fqname failed to split [%s].\n", + state->ghosts[state->index]); + return EINVAL; + } + subreq = cache_req_user_by_name_send(state, state->ev, state->ctx->rctx, state->ctx->rctx->ncache, 0, state->domain->name, - state->ghosts[state->index]); + ghost_name); if (subreq == NULL) { return ENOMEM; } From 0dd67527ec0aaf4c715f6f0edade8cf2de4ed101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C4=8Cech?= <[email protected]> Date: Wed, 15 Mar 2017 14:23:31 +0100 Subject: [PATCH 2/2] IFP: ldb_msg_find_element empty result fix Resolves: https://pagure.io/SSSD/sssd/issue/3315 --- src/responder/ifp/ifp_groups.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/responder/ifp/ifp_groups.c b/src/responder/ifp/ifp_groups.c index c66c0e8..893abe8 100644 --- a/src/responder/ifp/ifp_groups.c +++ b/src/responder/ifp/ifp_groups.c @@ -561,12 +561,7 @@ static void resolv_ghosts_group_done(struct tevent_req *subreq) } el = ldb_msg_find_element(group, SYSDB_GHOST); - if (el == NULL) { - ret = ENOMEM; - goto done; - } - - if (el->num_values == 0) { + if (el == NULL || el->num_values == 0) { ret = EOK; goto done; }
_______________________________________________ sssd-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
