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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.