Ensure that 'tcp' is checked for NULL before dereferencing. This resolves a potential null pointer dereference warning reported by static analysis.
Signed-off-by: Prabhav Kumar Vaish pvkumar5749404@gmail.com --- tools/testing/selftests/bpf/progs/skb_pkt_end.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/skb_pkt_end.c b/tools/testing/selftests/bpf/progs/skb_pkt_end.c index 3bb4451524a1..db33ff2839f7 100644 --- a/tools/testing/selftests/bpf/progs/skb_pkt_end.c +++ b/tools/testing/selftests/bpf/progs/skb_pkt_end.c @@ -45,10 +45,10 @@ int main_prog(struct __sk_buff *skb) goto out;
tcp = (void*)(ip + 1); - if (tcp->dest != 0) - goto out; if (!tcp) goto out; + if (tcp->dest != 0) + goto out;
urg_ptr = tcp->urg_ptr;
On 4/22/25 11:23 AM, Prabhav Kumar Vaish wrote:
Ensure that 'tcp' is checked for NULL before dereferencing. This resolves a potential null pointer dereference warning reported by static analysis.
Signed-off-by: Prabhav Kumar Vaish pvkumar5749404@gmail.com
tools/testing/selftests/bpf/progs/skb_pkt_end.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/skb_pkt_end.c b/tools/testing/selftests/bpf/progs/skb_pkt_end.c index 3bb4451524a1..db33ff2839f7 100644 --- a/tools/testing/selftests/bpf/progs/skb_pkt_end.c +++ b/tools/testing/selftests/bpf/progs/skb_pkt_end.c @@ -45,10 +45,10 @@ int main_prog(struct __sk_buff *skb) goto out; tcp = (void*)(ip + 1);
- if (tcp->dest != 0)
if (!tcp)goto out;
This case will never be hit, so this change is not doing anything other than silencing the static checker. Take a look at commit 9cc873e85800 ("selftests/bpf: Add skb_pkt_end test"). The test was written to have a specific llvm generated code. You will need to check the generated code is still testing what it is supposed to test.
pw-bot: cr
goto out;
- if (tcp->dest != 0)
goto out;
urg_ptr = tcp->urg_ptr;
From: Prabhav Kumar pvkumar5749404@gmail.com
Hi Martin, Thank you for the feedback.
You're right — I reviewed commit 9cc873e85800 and now understand that the test is designed to validate specific LLVM code generation, not just runtime behavior. I see how my change, although addressing the warning, could unintentionally alter the generated instructions and defeat the purpose of the test.
I'll drop this patch to preserve the original test intent. Thanks again for the context!
Best Regards, Prabhav
linux-kselftest-mirror@lists.linaro.org