summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorLukas Slebodnik <lslebodn@redhat.com>2013-11-25 16:01:59 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-11-29 14:51:54 +0100
commit956be66436d9bcb66c7478052742b1e14ddd3f5d (patch)
treeda9cfef9eabf99cc04b3b416bfd9e67652183814 /src/tests
parentfec7eabfc1be9350e1797fc79beaf4ca2f5c62e2 (diff)
downloadsssd-956be66436d9bcb66c7478052742b1e14ddd3f5d.tar.gz
sssd-956be66436d9bcb66c7478052742b1e14ddd3f5d.tar.xz
sssd-956be66436d9bcb66c7478052742b1e14ddd3f5d.zip
SYSDB: Sanitize filter before removing ghost attrs
sysdb_add_user fails with EIO if enumeration is disabled and user contains backslashes. We try to remove ghost attributes from groups with disabled enumeration, but unsanitized filter is used to find ghost attributes "(|(ghost=usr\\\\002)" and ldb cannot parse this filter. Resolves: https://fedorahosted.org/sssd/ticket/2163
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/sysdb-tests.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/tests/sysdb-tests.c b/src/tests/sysdb-tests.c
index bf964fd76..ddbf6f28f 100644
--- a/src/tests/sysdb-tests.c
+++ b/src/tests/sysdb-tests.c
@@ -3900,6 +3900,8 @@ START_TEST(test_odd_characters)
struct ldb_message *msg;
const struct ldb_val *val;
const char odd_username[] = "*(odd)\\user,name";
+ const char odd_username_orig_dn[] =
+ "\\2a\\28odd\\29\\5cuser,name,cn=users,dc=example,dc=com";
const char odd_groupname[] = "*(odd\\*)\\group,name";
const char odd_netgroupname[] = "*(odd\\*)\\netgroup,name";
const char *received_user;
@@ -4010,6 +4012,23 @@ START_TEST(test_odd_characters)
fail_unless(ret == EOK, "sysdb_delete_group error [%d][%s]",
ret, strerror(ret));
+ /* Add */
+ ret = sysdb_add_user(test_ctx->sysdb,
+ test_ctx->domain,
+ odd_username,
+ 10000, 0,
+ "","","",
+ odd_username_orig_dn,
+ NULL, 5400, 0);
+ fail_unless(ret == EOK, "sysdb_add_user error [%d][%s]",
+ ret, strerror(ret));
+
+ /* Delete User */
+ ret = sysdb_delete_user(test_ctx->sysdb, test_ctx->domain,
+ odd_username, 10000);
+ fail_unless(ret == EOK, "sysdb_delete_user error [%d][%s]",
+ ret, strerror(ret));
+
/* ===== Netgroups ===== */
/* Add */
ret = sysdb_add_netgroup(test_ctx->sysdb, test_ctx->domain,