diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2012-05-22 17:41:52 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2012-05-22 13:26:52 -0400 |
commit | 171c04604b73f5b7b315a221ec796ebb506ea57f (patch) | |
tree | 00225edf404c7714e2eeaa5d637d6fda220a91b4 /src/providers | |
parent | 24b333a01aec29cd0fbe3042f362d5bbeec6b99b (diff) | |
download | sssd_unused-171c04604b73f5b7b315a221ec796ebb506ea57f.tar.gz sssd_unused-171c04604b73f5b7b315a221ec796ebb506ea57f.tar.xz sssd_unused-171c04604b73f5b7b315a221ec796ebb506ea57f.zip |
LDAP nested groups: Do not process callback with _post deep in the nested structuresssd-1.8.0-29.el6
https://fedorahosted.org/sssd/ticket/1343
Diffstat (limited to 'src/providers')
-rw-r--r-- | src/providers/ldap/sdap_async_groups.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c index aad2990c..0123a9db 100644 --- a/src/providers/ldap/sdap_async_groups.c +++ b/src/providers/ldap/sdap_async_groups.c @@ -2498,14 +2498,13 @@ static errno_t sdap_nested_group_lookup_user(struct tevent_req *req, ret = sdap_nested_group_process_step(req); } - if (ret == EOK) { - /* EOK means it's complete */ - tevent_req_done(req); - tevent_req_post(req, state->ev); - } else if (ret != EAGAIN) { + if (ret != EOK && ret != EAGAIN) { + DEBUG(SSSDBG_OP_FAILURE, ("Nested group processing failed\n")); return ret; + } else if (ret == EOK) { + DEBUG(SSSDBG_TRACE_FUNC, ("All done.\n")); + tevent_req_done(req); } - return EOK; } /* @@ -2583,14 +2582,13 @@ static errno_t sdap_nested_group_lookup_group(struct tevent_req *req) ret = sdap_nested_group_process_step(req); } - if (ret == EOK) { - /* EOK means it's complete */ - tevent_req_done(req); - tevent_req_post(req, state->ev); - } else if (ret != EAGAIN) { + if (ret != EOK && ret != EAGAIN) { + DEBUG(SSSDBG_OP_FAILURE, ("Nested group processing failed\n")); return ret; + } else if (ret == EOK) { + DEBUG(SSSDBG_TRACE_FUNC, ("All done.\n")); + tevent_req_done(req); } - return EOK; } |