| From 332e6619f0a926d2f0937df1a7b3e80173bdfe02 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Apr 2024 16:06:22 -0700 |
| Subject: kunit/fortify: Fix mismatched kvalloc()/vfree() usage |
| |
| From: Kees Cook <keescook@chromium.org> |
| |
| [ Upstream commit 998b18072ceb0613629c256b409f4d299829c7ec ] |
| |
| The kv*() family of tests were accidentally freeing with vfree() instead |
| of kvfree(). Use kvfree() instead. |
| |
| Fixes: 9124a2640148 ("kunit/fortify: Validate __alloc_size attribute results") |
| Link: https://lore.kernel.org/r/20240425230619.work.299-kees@kernel.org |
| Signed-off-by: Kees Cook <keescook@chromium.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| lib/fortify_kunit.c | 16 ++++++++-------- |
| 1 file changed, 8 insertions(+), 8 deletions(-) |
| |
| diff --git a/lib/fortify_kunit.c b/lib/fortify_kunit.c |
| index 2e4fedc816210..7830a9e64ead7 100644 |
| --- a/lib/fortify_kunit.c |
| +++ b/lib/fortify_kunit.c |
| @@ -229,28 +229,28 @@ DEFINE_ALLOC_SIZE_TEST_PAIR(vmalloc) |
| \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvmalloc((alloc_pages) * PAGE_SIZE, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvmalloc_node((alloc_pages) * PAGE_SIZE, gfp, NUMA_NO_NODE), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvzalloc((alloc_pages) * PAGE_SIZE, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvzalloc_node((alloc_pages) * PAGE_SIZE, gfp, NUMA_NO_NODE), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvcalloc(1, (alloc_pages) * PAGE_SIZE, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvcalloc((alloc_pages) * PAGE_SIZE, 1, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvmalloc_array(1, (alloc_pages) * PAGE_SIZE, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| checker((expected_pages) * PAGE_SIZE, \ |
| kvmalloc_array((alloc_pages) * PAGE_SIZE, 1, gfp), \ |
| - vfree(p)); \ |
| + kvfree(p)); \ |
| \ |
| prev_size = (expected_pages) * PAGE_SIZE; \ |
| orig = kvmalloc(prev_size, gfp); \ |
| -- |
| 2.43.0 |
| |