All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sabrina Dubroca <sd@queasysnail.net>
To: Eric Dumazet <edumazet@google.com>
Cc: "David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	Willem de Bruijn <willemb@google.com>,
	netdev@vger.kernel.org, eric.dumazet@gmail.com,
	Michal Kubecek <mkubecek@suse.cz>
Subject: Re: [PATCH net] udp: drop secpath before storing an skb in a receive queue
Date: Tue, 14 Oct 2025 08:37:22 +0200	[thread overview]
Message-ID: <aO3voj4IbAoHgDoP@krikkit> (raw)
In-Reply-To: <20251014060454.1841122-1-edumazet@google.com>

2025-10-14, 06:04:54 +0000, Eric Dumazet wrote:
> Michal reported and bisected an issue after recent adoption
> of skb_attempt_defer_free() in UDP.
> 
> We had the same issue for TCP, that Sabrina fixed in commit 9b6412e6979f
> ("tcp: drop secpath at the same time as we currently drop dst")

I'm not convinced this is the same bug. The TCP one was a "leaked"
reference (delayed put). This looks more like a double put/missing
hold to me (we get to the destroy path without having done the proper
delete, which would set XFRM_STATE_DEAD).

And this shouldn't be an issue after b441cf3f8c4b ("xfrm: delete
x->tunnel as we delete x").

> Many thanks to Michal and Sabrina.
> 
> Fixes: 6471658dc66c ("udp: use skb_attempt_defer_free()")
> Reported-and-bisected-by: Michal Kubecek <mkubecek@suse.cz>
> Closes: https://lore.kernel.org/netdev/gpjh4lrotyephiqpuldtxxizrsg6job7cvhiqrw72saz2ubs3h@g6fgbvexgl3r/
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Cc: Sabrina Dubroca <sd@queasysnail.net>
> ---
>  net/ipv4/udp.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
> index 95241093b7f0..3f05ee70029c 100644
> --- a/net/ipv4/udp.c
> +++ b/net/ipv4/udp.c
> @@ -1709,6 +1709,8 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
>  	int dropcount;
>  	int nb = 0;
>  
> +	secpath_reset(skb);

See also the comment for udp_try_make_stateless:

/* all head states (dst, sk, nf conntrack) except skb extensions are
 * cleared by udp_rcv().
 *
 * We need to preserve secpath, if present, to eventually process
 * IP_CMSG_PASSSEC at recvmsg() time.
 *
 * Other extensions can be cleared.
 */


It looks like this patch would re-introduce the problem fixed by
dce4551cb2ad ("udp: preserve head state for IP_CMSG_PASSSEC").

> +
>  	rmem = atomic_read(&sk->sk_rmem_alloc);
>  	rcvbuf = READ_ONCE(sk->sk_rcvbuf);
>  	size = skb->truesize;
> -- 
> 2.51.0.788.g6d19910ace-goog
> 

-- 
Sabrina

  reply	other threads:[~2025-10-14  6:37 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-14  6:04 [PATCH net] udp: drop secpath before storing an skb in a receive queue Eric Dumazet
2025-10-14  6:37 ` Sabrina Dubroca [this message]
2025-10-14  6:54   ` Eric Dumazet
2025-10-14  7:32   ` Paolo Abeni
2025-10-14  7:43     ` Eric Dumazet
2025-10-14  8:01       ` Eric Dumazet
2025-10-14  8:06         ` Eric Dumazet
2025-10-14  8:27           ` Eric Dumazet
2025-10-14  8:55             ` Paolo Abeni
2025-10-14 11:20             ` Michal Kubecek
2025-10-14 11:34               ` Eric Dumazet
2025-10-14 13:18                 ` Michal Kubecek
2025-10-14 13:40                 ` Florian Westphal
2025-10-14 13:58                   ` Eric Dumazet
2025-10-14  8:28           ` Sabrina Dubroca
2025-10-14  8:33             ` Eric Dumazet
2025-10-14  7:45     ` Sabrina Dubroca

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=aO3voj4IbAoHgDoP@krikkit \
    --to=sd@queasysnail.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=mkubecek@suse.cz \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=willemb@google.com \
    /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.