Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Mina Almasry" <almasrymina@google.com>
Cc: bpf@vger.kernel.org, linux-rdma@vger.kernel.org
Subject: Re: [PATCH net-next v1 6/6] net: kunit: test netmem, page_pool, and skb frag refcounting
Date: Sun, 11 Oct 2026 08:39:57 +0000	[thread overview]
Message-ID: <sashiko-outbox-167130@kernel.org> (raw)
In-Reply-To: <20261010083935.3274178-7-almasrymina@google.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] test: uninitialized mac_header causes out-of-bounds memcpy in skb_segment
- [Low] test: unchecked skb_clone allocation failure causes NULL pointer dereference
--

commit ab0c57271e2a8950e7df2bcb1c3668cf67f6f94b
Author: Mina Almasry <almasrymina@google.com>

net: kunit: test netmem, page_pool, and skb frag refcounting

Verify that non-pp (page._refcount / binding->ref) and page_pool
(pp_ref_count) references stay balanced without cross-counter leaks or
underflows across regular pages, page_pool pages, non-pp net_iovs, and
page_pool net_iovs with both pp_recycle=0 and pp_recycle=1.

> diff --git a/net/core/net_test.c b/net/core/net_test.c
> index 9c3a590865d26..f9f50f9159902 100644
> --- a/net/core/net_test.c
> +++ b/net/core/net_test.c

[ ... ]

> @@ -370,10 +370,757 @@ static void ip_tunnel_flags_test_run(struct kunit *test)

[ ... ]

> +	/* skb_segment on pp_recycle=1 skb propagates pp_recycle to segments */
> +	skb->protocol = htons(ETH_P_IP);
> +	skb_reset_network_header(skb);
> +	skb_shinfo(skb)->gso_size = 16;
> +	split = skb_segment(skb, NETIF_F_SG | NETIF_F_HW_CSUM);
> +	KUNIT_ASSERT_FALSE(test, IS_ERR_OR_NULL(split));

[Severity: High]
Can this missing MAC header reset cause a massive out-of-bounds memcpy?

Without calling skb_reset_mac_header(), the mac_header defaults to an
uninitialized value of ~0U (65535). Inside skb_segment(), this creates a
massive negative offset when calculating doffset, leading to a 64KB
out-of-bounds read via skb_copy_from_linear_data_offset() that will likely
crash the test with a kernel panic.

[ ... ]

> +	page_pool_ref_netmem(netmem);
> +	clone1 = skb_clone(skb, GFP_KERNEL);
> +	clone2 = skb_clone(clone1, GFP_KERNEL);
> +	KUNIT_ASSERT_NOT_NULL(test, clone1);
> +	KUNIT_ASSERT_NOT_NULL(test, clone2);

[Severity: Low]
Does this code dereference a potential NULL pointer if memory allocation fails?

If the first skb_clone() returns NULL for clone1 under memory pressure, it
is immediately passed to the second skb_clone(clone1, GFP_KERNEL). Because
skb_clone() dereferences its first argument unconditionally, this causes a
kernel panic before the test has a chance to safely fail at the subsequent
KUNIT_ASSERT_NOT_NULL() check.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261010083935.3274178-1-almasrymina@google.com?part=6

  reply	other threads:[~2026-10-11  8:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-10  8:38 [PATCH net-next v1 0/6] net: unify symmetric netmem and page_pool refcounting Mina Almasry
2026-10-10  8:38 ` [PATCH net-next v1 1/6] netmem: rename __get/__put_netmem() to get/put_net_iov() Mina Almasry
2026-10-11  8:39   ` sashiko-bot
2026-10-10  8:38 ` [PATCH net-next v1 2/6] net: skbuff: add napi_pp_get_page() and use it in tcp_recvmsg_dmabuf() Mina Almasry
2026-10-11  8:39   ` sashiko-bot
2026-10-10  8:38 ` [PATCH net-next v1 3/6] net: skbuff: replace skb_page_unref() and __skb_frag_unref() with skb_netmem_unref() Mina Almasry
2026-10-11  8:39   ` sashiko-bot
2026-10-10  8:38 ` [PATCH net-next v1 4/6] net: skbuff: replace __skb_frag_ref() with symmetric skb_netmem_ref() Mina Almasry
2026-10-11  8:39   ` sashiko-bot
2026-10-10  8:38 ` [PATCH net-next v1 5/6] net: skbuff: use skb_frag_ref() in skb_try_coalesce() Mina Almasry
2026-10-11  8:39   ` sashiko-bot
2026-10-10  8:38 ` [PATCH net-next v1 6/6] net: kunit: test netmem, page_pool, and skb frag refcounting Mina Almasry
2026-10-11  8:39   ` sashiko-bot [this message]
2026-10-11 15:56   ` Mina Almasry
2026-10-10  8:45 ` [PATCH net-next v1 0/6] net: unify symmetric netmem and page_pool refcounting netdev-bot+sinfo
2026-10-10  8:51   ` Mina Almasry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-167130@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=almasrymina@google.com \
    --cc=bpf@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox