Re: [PATCH net-next v5] sctp: auth: discard auth_chunk when skb_clone fails
From: Xin Long
Date: Wed Jul 29 2026 - 10:52:39 EST
On Tue, Jul 28, 2026 at 9:24 PM Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
>
> On Thu, 23 Jul 2026 14:11:07 +0800 luoqing wrote:
> > From: Qing Luo <luoqing@xxxxxxxxxx>
> >
> > When processing AUTH + COOKIE-ECHO packets, if skb_clone() fails
> > due to memory pressure, chunk->auth_chunk is NULL. The original
> > code still sets chunk->auth = 1 and continues, leaving the
> > COOKIE-ECHO to be processed without a valid auth_chunk for
> > deferred verification.
> >
> > Discard the AUTH chunk early via pdiscard when skb_clone() fails,
> > so that the receive loop can continue processing remaining chunks
> > in the inqueue instead of stalling the entire packet.
>
> Hi Xin Long, should we apply this or it's no longer worth it after
> 8e04823c120b ?
>
Apply it to net-next.git.
Acked-by: Xin Long <lucien.xin@xxxxxxxxx>
So sending patches with wrong in-reply-to doesn't require repost?
Thanks.
> > diff --git a/net/sctp/associola.c b/net/sctp/associola.c
> > index 62d3cc155809..a5f2835dbe0f 100644
> > --- a/net/sctp/associola.c
> > +++ b/net/sctp/associola.c
> > @@ -999,6 +999,10 @@ static void sctp_assoc_bh_rcv(struct work_struct *work)
> > if (next_hdr->type == SCTP_CID_COOKIE_ECHO) {
> > chunk->auth_chunk = skb_clone(chunk->skb,
> > GFP_ATOMIC);
> > + if (!chunk->auth_chunk) {
> > + chunk->pdiscard = 1;
> > + continue;
> > + }
> > chunk->auth = 1;
> > continue;
> > }
> > diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
> > index dfb1719275db..a15b599b20b7 100644
> > --- a/net/sctp/endpointola.c
> > +++ b/net/sctp/endpointola.c
> > @@ -368,6 +368,10 @@ static void sctp_endpoint_bh_rcv(struct work_struct *work)
> > if (next_hdr->type == SCTP_CID_COOKIE_ECHO) {
> > chunk->auth_chunk = skb_clone(chunk->skb,
> > GFP_ATOMIC);
> > + if (!chunk->auth_chunk) {
> > + chunk->pdiscard = 1;
> > + continue;
> > + }
> > chunk->auth = 1;
> > continue;
> > }
>