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

David Gow posted 1 patch 2 years ago
lib/kunit/kunit-test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] kunit: test: Use an action wrapper instead of a cast
Posted by David Gow 2 years ago
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 <davidgow@google.com>
---
 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
Re: [PATCH] kunit: test: Use an action wrapper instead of a cast
Posted by Rae Moar 2 years ago
On Wed, Dec 6, 2023 at 3:23 AM David Gow <davidgow@google.com> 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 <davidgow@google.com>

Hello!

This looks good to me. All ready to go.

Reviewed-by: Rae Moar <rmoar@google.com>

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
>