2023-09-23 15:52:29

by Ma Ke

[permalink] [raw]
Subject: [PATCH v3] list: test: potential dereference of null pointer

To avoid the failure of alloc, we could check the return value of
kmalloc() and kzalloc().

Signed-off-by: Ma Ke <[email protected]>
---
lib/list-test.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/list-test.c b/lib/list-test.c
index 0cc27de9cec8..a0b478042477 100644
--- a/lib/list-test.c
+++ b/lib/list-test.c
@@ -26,10 +26,12 @@ static void list_test_list_init(struct kunit *test)

INIT_LIST_HEAD(&list2);

- list4 = kzalloc(sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
+ list4 = kunit_kzalloc(test, sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
+ KUNIT_ASSERT_NOT_NULL(test, list4);
INIT_LIST_HEAD(list4);

list5 = kmalloc(sizeof(*list5), GFP_KERNEL | __GFP_NOFAIL);
+ KUNIT_ASSERT_NOT_NULL(test, list5);
memset(list5, 0xFF, sizeof(*list5));
INIT_LIST_HEAD(list5);

@@ -40,7 +42,6 @@ static void list_test_list_init(struct kunit *test)
KUNIT_EXPECT_TRUE(test, list_empty_careful(list4));
KUNIT_EXPECT_TRUE(test, list_empty_careful(list5));

- kfree(list4);
kfree(list5);
}

--
2.37.2


2023-09-27 13:52:28

by David Gow

[permalink] [raw]
Subject: Re: [PATCH v3] list: test: potential dereference of null pointer

On Sat, 23 Sept 2023 at 08:54, Ma Ke <[email protected]> wrote:
>
> To avoid the failure of alloc, we could check the return value of
> kmalloc() and kzalloc().
>
> Signed-off-by: Ma Ke <[email protected]>
> ---

Thanks very much. This looks good to me. We could change the rest of
the allocations to also use kunit_kzalloc(), but equally that can be
left to another patch.

Reviewed-by: David Gow <[email protected]>

Cheers,
-- David

> lib/list-test.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/list-test.c b/lib/list-test.c
> index 0cc27de9cec8..a0b478042477 100644
> --- a/lib/list-test.c
> +++ b/lib/list-test.c
> @@ -26,10 +26,12 @@ static void list_test_list_init(struct kunit *test)
>
> INIT_LIST_HEAD(&list2);
>
> - list4 = kzalloc(sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
> + list4 = kunit_kzalloc(test, sizeof(*list4), GFP_KERNEL | __GFP_NOFAIL);
> + KUNIT_ASSERT_NOT_NULL(test, list4);
> INIT_LIST_HEAD(list4);
>
> list5 = kmalloc(sizeof(*list5), GFP_KERNEL | __GFP_NOFAIL);
> + KUNIT_ASSERT_NOT_NULL(test, list5);
> memset(list5, 0xFF, sizeof(*list5));
> INIT_LIST_HEAD(list5);
>
> @@ -40,7 +42,6 @@ static void list_test_list_init(struct kunit *test)
> KUNIT_EXPECT_TRUE(test, list_empty_careful(list4));
> KUNIT_EXPECT_TRUE(test, list_empty_careful(list5));
>
> - kfree(list4);
> kfree(list5);
> }
>
> --
> 2.37.2
>


Attachments:
smime.p7s (3.91 kB)
S/MIME Cryptographic Signature