Re: [PATCH net-next] lib: packing: catch kunit_kzalloc() failure in the pack() test

From: Przemek Kitszel
Date: Wed Oct 09 2024 - 06:21:53 EST


On 10/4/24 21:20, Keller, Jacob E wrote:


-----Original Message-----
From: Vladimir Oltean <vladimir.oltean@xxxxxxx>
Sent: Friday, October 4, 2024 4:00 AM
To: netdev@xxxxxxxxxxxxxxx
Cc: David S. Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
<edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
<pabeni@xxxxxxxxxx>; Keller, Jacob E <jacob.e.keller@xxxxxxxxx>; Kitszel,
Przemyslaw <przemyslaw.kitszel@xxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
Subject: [PATCH net-next] lib: packing: catch kunit_kzalloc() failure in the pack()
test

kunit_kzalloc() may fail. Other call sites verify that this is the case,
either using a direct comparison with the NULL pointer, or the
KUNIT_ASSERT_NOT_NULL() or KUNIT_ASSERT_NOT_ERR_OR_NULL().

Pick KUNIT_ASSERT_NOT_NULL() as the error handling method that made most
sense to me. It's an unlikely thing to happen, but at least we call
__kunit_abort() instead of dereferencing this NULL pointer.

Fixes: e9502ea6db8a ("lib: packing: add KUnit tests adapted from selftests")
Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
---
lib/packing_test.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/packing_test.c b/lib/packing_test.c
index 015ad1180d23..b38ea43c03fd 100644
--- a/lib/packing_test.c
+++ b/lib/packing_test.c
@@ -375,6 +375,7 @@ static void packing_test_pack(struct kunit *test)
int err;

pbuf = kunit_kzalloc(test, params->pbuf_size, GFP_KERNEL);
+ KUNIT_ASSERT_NOT_NULL(test, pbuf);

err = pack(pbuf, params->uval, params->start_bit, params->end_bit,
params->pbuf_size, params->quirks);
--
2.43.0

Oh good catch! I guess I had assumed that kunit_kzalloc would itself detect and fail instead of continuing....

that would be great

kunit_*alloc gives kunit-managed resources though