diff options
-rw-r--r-- | src/responder/common/negcache.c | 2 | ||||
-rw-r--r-- | src/tests/cmocka/test_negcache.c | 11 |
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) |