diff options
author | Pavel Reichl <preichl@redhat.com> | 2014-02-26 16:52:26 +0000 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-06-25 16:04:14 +0200 |
commit | 9436c86caf9b2f7ec33c3022dfed2a653d3ec965 (patch) | |
tree | a1a3b951725ee50ba28498b19dcfbfa5ba7ef056 /src/db | |
parent | 940dd08102ac8527ef9e367dc5d6fb88cd53a8a2 (diff) | |
download | sssd-9436c86caf9b2f7ec33c3022dfed2a653d3ec965.tar.gz sssd-9436c86caf9b2f7ec33c3022dfed2a653d3ec965.tar.xz sssd-9436c86caf9b2f7ec33c3022dfed2a653d3ec965.zip |
SYSDB: sysdb_getnetgr returns ENOENT
Replace call of ldb_search by sss_ldb_search to make sure that ENOENT is
returned if no results were found.
Resolves:
https://fedorahosted.org/sssd/ticket/1991
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/sysdb_search.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/db/sysdb_search.c b/src/db/sysdb_search.c index 60ad61368..ff14c4a98 100644 --- a/src/db/sysdb_search.c +++ b/src/db/sysdb_search.c @@ -782,11 +782,10 @@ errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, TALLOC_CTX *tmp_ctx; static const char *attrs[] = SYSDB_NETGR_ATTRS; struct ldb_dn *base_dn; - struct ldb_result *result; + struct ldb_result *result = NULL; char *sanitized_netgroup; char *lc_sanitized_netgroup; char *netgroup_dn; - int lret; errno_t ret; tmp_ctx = talloc_new(NULL); @@ -816,18 +815,15 @@ errno_t sysdb_getnetgr(TALLOC_CTX *mem_ctx, goto done; } - lret = ldb_search(domain->sysdb->ldb, tmp_ctx, &result, base_dn, - LDB_SCOPE_SUBTREE, attrs, - SYSDB_NETGR_TRIPLES_FILTER, lc_sanitized_netgroup, - sanitized_netgroup, sanitized_netgroup, - netgroup_dn); - ret = sysdb_error_to_errno(lret); - if (ret != EOK) { - goto done; - } + ret = sss_ldb_search(domain->sysdb->ldb, tmp_ctx, &result, base_dn, + LDB_SCOPE_SUBTREE, attrs, + SYSDB_NETGR_TRIPLES_FILTER, lc_sanitized_netgroup, + sanitized_netgroup, sanitized_netgroup, + netgroup_dn); - *res = talloc_steal(mem_ctx, result); - ret = EOK; + if (ret == EOK || ret == ENOENT) { + *res = talloc_steal(mem_ctx, result); + } done: talloc_zfree(tmp_ctx); |