Message ID | 20241004110012.1323427-1-vladimir.oltean@nxp.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 1405981bbba0796530311d07a67bf58228cc0fcc |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] lib: packing: catch kunit_kzalloc() failure in the pack() test | expand |
> -----Original Message----- > From: Vladimir Oltean <vladimir.oltean@nxp.com> > Sent: Friday, October 4, 2024 4:00 AM > To: netdev@vger.kernel.org > Cc: David S. Miller <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; Keller, Jacob E <jacob.e.keller@intel.com>; Kitszel, > Przemyslaw <przemyslaw.kitszel@intel.com>; linux-kernel@vger.kernel.org > 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@nxp.com> > --- > 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....
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Fri, 4 Oct 2024 14:00:12 +0300 you wrote: > 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. > > [...] Here is the summary with links: - [net-next] lib: packing: catch kunit_kzalloc() failure in the pack() test https://git.kernel.org/netdev/net-next/c/1405981bbba0 You are awesome, thank you!
On 10/4/24 21:20, Keller, Jacob E wrote: > > >> -----Original Message----- >> From: Vladimir Oltean <vladimir.oltean@nxp.com> >> Sent: Friday, October 4, 2024 4:00 AM >> To: netdev@vger.kernel.org >> Cc: David S. Miller <davem@davemloft.net>; Eric Dumazet >> <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni >> <pabeni@redhat.com>; Keller, Jacob E <jacob.e.keller@intel.com>; Kitszel, >> Przemyslaw <przemyslaw.kitszel@intel.com>; linux-kernel@vger.kernel.org >> 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@nxp.com> >> --- >> 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
> -----Original Message----- > From: Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com> > Sent: Wednesday, October 9, 2024 3:21 AM > To: Keller, Jacob E <jacob.e.keller@intel.com>; Vladimir Oltean > <vladimir.oltean@nxp.com> > Cc: David S. Miller <davem@davemloft.net>; Eric Dumazet > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > <pabeni@redhat.com>; linux-kernel@vger.kernel.org; netdev@vger.kernel.org > Subject: Re: [PATCH net-next] lib: packing: catch kunit_kzalloc() failure in the pack() > test > > On 10/4/24 21:20, Keller, Jacob E wrote: > > > > > >> -----Original Message----- > >> From: Vladimir Oltean <vladimir.oltean@nxp.com> > >> Sent: Friday, October 4, 2024 4:00 AM > >> To: netdev@vger.kernel.org > >> Cc: David S. Miller <davem@davemloft.net>; Eric Dumazet > >> <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni > >> <pabeni@redhat.com>; Keller, Jacob E <jacob.e.keller@intel.com>; Kitszel, > >> Przemyslaw <przemyslaw.kitszel@intel.com>; linux-kernel@vger.kernel.org > >> 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@nxp.com> > >> --- > >> 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 Yep, just a misunderstanding on my part
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);
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@nxp.com> --- lib/packing_test.c | 1 + 1 file changed, 1 insertion(+)