Hello,

please see simple attached patch.

Thanks!
>From ea19e0e615ce37353ffdece56e875d14bb882aa9 Mon Sep 17 00:00:00 2001
From: Pavel Reichl <prei...@redhat.com>
Date: Thu, 30 Oct 2014 11:54:54 +0000
Subject: [PATCH] SYSDB: sysdb_idmap_get_mappings returns ENOENT

sysdb_idmap_get_mappings returns ENOENT if no results were found.

Part od solution for:
https://fedorahosted.org/sssd/ticket/1991
---
 src/db/sysdb_idmap.c    | 11 +++++------
 src/tests/sysdb-tests.c |  6 ++++++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/db/sysdb_idmap.c b/src/db/sysdb_idmap.c
index 7d342671b526099beaa461668fb6c58f73f5232a..bf7883a943b396da2ca400718ae882d70ddb55bb 100644
--- a/src/db/sysdb_idmap.c
+++ b/src/db/sysdb_idmap.c
@@ -280,7 +280,6 @@ sysdb_idmap_get_mappings(TALLOC_CTX *mem_ctx,
                          struct ldb_result **_result)
 {
     errno_t ret;
-    int lret;
     struct ldb_dn *base_dn;
     TALLOC_CTX *tmp_ctx;
     struct ldb_result *res;
@@ -298,19 +297,19 @@ sysdb_idmap_get_mappings(TALLOC_CTX *mem_ctx,
         goto done;
     }
 
-    lret = ldb_search(domain->sysdb->ldb, tmp_ctx, &res, base_dn,
-                     LDB_SCOPE_SUBTREE, attrs, SYSDB_IDMAP_FILTER);
-    if (lret) {
+    SSS_LDB_SEARCH(ret, domain->sysdb->ldb, tmp_ctx, &res, base_dn,
+                   LDB_SCOPE_SUBTREE, attrs, SYSDB_IDMAP_FILTER);
+    if (ret != EOK) {
         DEBUG(SSSDBG_MINOR_FAILURE,
               "Could not locate ID mappings: [%s]\n",
-               ldb_strerror(lret));
-        ret = sysdb_error_to_errno(lret);
+               sss_strerror(ret));
         goto done;
     }
 
     *_result = talloc_steal(mem_ctx, res);
 
     ret = EOK;
+
 done:
     talloc_free(tmp_ctx);
     return ret;
diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c
index c9f141ab066946d9fc9baabab32b833a6a2a1187..4463a82b333350714a268cef6f8226011943cb6e 100644
--- a/src/tests/sysdb-tests.c
+++ b/src/tests/sysdb-tests.c
@@ -4746,6 +4746,12 @@ START_TEST (test_sysdb_search_return_ENOENT)
     fail_if(ret != EOK, "Could not set up the test");
     check_leaks_push(test_ctx);
 
+    /* id mapping */
+    ret = sysdb_idmap_get_mappings(test_ctx, test_ctx->domain, &res);
+    fail_unless(ret == ENOENT, "sysdb_idmap_get_mappings error [%d][%s].",
+                ret, strerror(ret));
+    talloc_zfree(res);
+
     /* Search user */
     ret = sysdb_search_user_by_name(test_ctx, test_ctx->domain,
                                     "nonexisting_user", NULL, &msg);
-- 
1.9.3

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to