Skip to content

Commit 9bfe8f1

Browse files
mattbobrowskiKernel Patches Daemon
authored andcommitted
selftests/bpf: use ASSERT_STRNEQ to factor in long slab cache names
subtest_kmem_cache_iter_check_slabinfo() fundamentally compares slab cache names parsed out from /proc/slabinfo against those stored within struct kmem_cache_result. The current problem is that the slab cache name within struct kmem_cache_result is stored within a bounded fixed-length array (sized to SLAB_NAME_MAX(32)), whereas the name parsed out from /proc/slabinfo is not. Meaning, using ASSERT_STREQ() can certainly lead to test failures, particularly when dealing with slab cache names that are longer than SLAB_NAME_MAX(32) bytes. Notably, kmem_cache_create() allows callers to create slab caches with somewhat arbitrarily sized names via its __name identifier argument, so exceeding the SLAB_NAME_MAX(32) limit that is in place now can certainly happen. Make subtest_kmem_cache_iter_check_slabinfo() more reliable by only checking up to sizeof(struct kmem_cache_result.name) - 1 using ASSERT_STRNEQ(). Fixes: a496d0c ("selftests/bpf: Add a test for kmem_cache_iter") Signed-off-by: Matt Bobrowski <[email protected]> Acked-by: Song Liu <[email protected]>
1 parent 2412df8 commit 9bfe8f1

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ static void subtest_kmem_cache_iter_check_slabinfo(struct kmem_cache_iter *skel)
5757
if (!ASSERT_OK(ret, "kmem_cache_lookup"))
5858
break;
5959

60-
ASSERT_STREQ(r.name, name, "kmem_cache_name");
60+
ASSERT_STRNEQ(r.name, name, sizeof(r.name) - 1,
61+
"kmem_cache_name");
6162
ASSERT_EQ(r.obj_size, objsize, "kmem_cache_objsize");
6263

6364
seen++;

0 commit comments

Comments
 (0)