2023-12-06 08:23:15

by David Gow

[permalink] [raw]
Subject: [PATCH] kunit: test: Use an action wrapper instead of a cast

We missed one of the casts of kfree() to kunit_action_t in kunit-test,
which was only enabled when debugfs was in use. This could potentially
break CFI.

Use the existing wrapper function instead.

Signed-off-by: David Gow <[email protected]>
---
lib/kunit/kunit-test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c
index 3e9c5192d095..ee6927c60979 100644
--- a/lib/kunit/kunit-test.c
+++ b/lib/kunit/kunit-test.c
@@ -559,7 +559,7 @@ static void kunit_log_test(struct kunit *test)
KUNIT_EXPECT_TRUE(test, test->log->append_newlines);

full_log = string_stream_get_string(test->log);
- kunit_add_action(test, (kunit_action_t *)kfree, full_log);
+ kunit_add_action(test, kfree_wrapper, full_log);
KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
strstr(full_log, "put this in log."));
KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
--
2.43.0.rc2.451.g8631bc7472-goog


2023-12-08 19:33:14

by Rae Moar

[permalink] [raw]
Subject: Re: [PATCH] kunit: test: Use an action wrapper instead of a cast

On Wed, Dec 6, 2023 at 3:23 AM David Gow <[email protected]> wrote:
>
> We missed one of the casts of kfree() to kunit_action_t in kunit-test,
> which was only enabled when debugfs was in use. This could potentially
> break CFI.
>
> Use the existing wrapper function instead.
>
> Signed-off-by: David Gow <[email protected]>

Hello!

This looks good to me. All ready to go.

Reviewed-by: Rae Moar <[email protected]>

Thanks!
-Rae

> ---
> lib/kunit/kunit-test.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c
> index 3e9c5192d095..ee6927c60979 100644
> --- a/lib/kunit/kunit-test.c
> +++ b/lib/kunit/kunit-test.c
> @@ -559,7 +559,7 @@ static void kunit_log_test(struct kunit *test)
> KUNIT_EXPECT_TRUE(test, test->log->append_newlines);
>
> full_log = string_stream_get_string(test->log);
> - kunit_add_action(test, (kunit_action_t *)kfree, full_log);
> + kunit_add_action(test, kfree_wrapper, full_log);
> KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
> strstr(full_log, "put this in log."));
> KUNIT_EXPECT_NOT_ERR_OR_NULL(test,
> --
> 2.43.0.rc2.451.g8631bc7472-goog
>