Re: [PATCH bpf-next 4/4] selftests/bpf: Add a null pointer check for the serial_test_tp_attach_query

From: Daniel Borkmann
Date: Fri May 03 2024 - 11:51:57 EST


On 5/3/24 5:47 PM, Daniel Borkmann wrote:
On 4/24/24 4:04 AM, Kunwu Chan wrote:
There is a 'malloc' call, which can be unsuccessful.
Add the malloc failure checking to avoid possible null
dereference.

Signed-off-by: Kunwu Chan <chentao@xxxxxxxxxx>
---
  tools/testing/selftests/bpf/prog_tests/tp_attach_query.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/tools/testing/selftests/bpf/prog_tests/tp_attach_query.c b/tools/testing/selftests/bpf/prog_tests/tp_attach_query.c
index 655d69f0ff0b..302b25408a53 100644
--- a/tools/testing/selftests/bpf/prog_tests/tp_attach_query.c
+++ b/tools/testing/selftests/bpf/prog_tests/tp_attach_query.c
@@ -39,6 +39,9 @@ void serial_test_tp_attach_query(void)
      attr.wakeup_events = 1;
      query = malloc(sizeof(*query) + sizeof(__u32) * num_progs);
+    if (CHECK(!query, "malloc()", "error:%s\n", strerror(errno)))

Series looks reasonable, small nit on CHECK() : Lets use ASSERT*() macros given they are
preferred over the latter :

if (!ASSERT_OK_PTR(buf, "malloc"))

( Also as a side-note: Fixes tag on all these patches is not needed given this will just
end up spamming stable tree. If you indeed end up with NULL then the tests will just
segfault & fail. )

+        return;
+
      for (i = 0; i < num_progs; i++) {
          err = bpf_prog_test_load(file, BPF_PROG_TYPE_TRACEPOINT, &obj[i],
                      &prog_fd[i]);