summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/responder/common/negcache.c2
-rw-r--r--src/tests/cmocka/test_negcache.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/src/responder/common/negcache.c b/src/responder/common/negcache.c
index 88dd18fa5..04c9a53f5 100644
--- a/src/responder/common/negcache.c
+++ b/src/responder/common/negcache.c
@@ -556,7 +556,7 @@ static int delete_permanent(struct tdb_context *tdb,
char *ep;
if (strncmp((char *)key.dptr,
- NC_ENTRY_PREFIX, sizeof(NC_ENTRY_PREFIX)) != 0) {
+ NC_ENTRY_PREFIX, sizeof(NC_ENTRY_PREFIX) - 1) != 0) {
/* not interested in this key */
return 0;
}
diff --git a/src/tests/cmocka/test_negcache.c b/src/tests/cmocka/test_negcache.c
index f98081337..4502c0294 100644
--- a/src/tests/cmocka/test_negcache.c
+++ b/src/tests/cmocka/test_negcache.c
@@ -563,10 +563,21 @@ static void test_sss_ncache_reset_permanent(void **state)
{
int ret;
struct test_state *ts;
+ const bool permanent = true;
ts = talloc_get_type_abort(*state, struct test_state);
+
+ ret = sss_ncache_set_uid(ts->ctx, permanent, 0);
+ assert_int_equal(ret, EOK);
+
+ ret = sss_ncache_check_uid(ts->ctx, 0, 0);
+ assert_int_equal(ret, EEXIST);
+
ret = sss_ncache_reset_permanent(ts->ctx);
assert_int_equal(ret, EOK);
+
+ ret = sss_ncache_check_uid(ts->ctx, 0, 0);
+ assert_int_equal(ret, ENOENT);
}
static void test_sss_ncache_prepopulate(void **state)