summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/db/sysdb_ops.c7
-rw-r--r--src/tests/cmocka/test_sysdb_utils.c10
2 files changed, 15 insertions, 2 deletions
diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
index 9afb0d7d7..d34583787 100644
--- a/src/db/sysdb_ops.c
+++ b/src/db/sysdb_ops.c
@@ -3795,7 +3795,12 @@ errno_t sysdb_handle_original_uuid(const char *orig_name,
struct ldb_message_element *el;
char guid_str_buf[GUID_STR_BUF_SIZE];
- if (orig_name == NULL || src_attrs == NULL || src_name == NULL
+ if (orig_name == NULL) {
+ /* This provider doesn't handle UUIDs */
+ return ENOENT;
+ }
+
+ if (src_attrs == NULL || src_name == NULL
|| dest_attrs == NULL || dest_name == NULL) {
return EINVAL;
}
diff --git a/src/tests/cmocka/test_sysdb_utils.c b/src/tests/cmocka/test_sysdb_utils.c
index 1e9baa88c..b791f14b7 100644
--- a/src/tests/cmocka/test_sysdb_utils.c
+++ b/src/tests/cmocka/test_sysdb_utils.c
@@ -45,7 +45,7 @@ static void test_sysdb_handle_original_uuid(void **state)
struct ldb_val guid_val = {bin_guid, 16};
ret = sysdb_handle_original_uuid(NULL, NULL, NULL, NULL, NULL);
- assert_int_equal(ret, EINVAL);
+ assert_int_equal(ret, ENOENT);
src_attrs = sysdb_new_attrs(NULL);
assert_non_null(src_attrs);
@@ -63,6 +63,14 @@ static void test_sysdb_handle_original_uuid(void **state)
ret = sysdb_attrs_add_string(src_attrs, "UUID", IPA_UUID);
assert_int_equal(ret, EOK);
+ ret = sysdb_handle_original_uuid(NULL, src_attrs, "GUID",
+ dest_attrs, "def");
+ assert_int_equal(ret, ENOENT);
+
+ ret = sysdb_handle_original_uuid("objectGUID", NULL, "GUID",
+ dest_attrs, "def");
+ assert_int_equal(ret, EINVAL);
+
ret = sysdb_handle_original_uuid("objectGUID", src_attrs, "GUID",
dest_attrs, "def");
assert_int_equal(ret, EOK);