Re: [PATCH net v2] sctp: fix addip_serial increment on ASCONF_ACK allocation failure

Xin Long <[email protected]> Tue, 4 Aug 2026 14:31:26 -0400
Newsgroups gmane.linux.network
Message-ID <CADvbK_eDoT4WC21QvP_Pnp4prMv6YUODYPGN_cPuNVc3bs46-g@mail.gmail.com>
On Mon, Aug 3, 2026 at 10:56 PM luoqing <[email protected]> wrote:
>
> From: Qing Luo <[email protected]>
>
> In sctp_process_asconf(), when sctp_make_asconf_ack() fails to allocate
> the ASCONF_ACK chunk due to memory pressure, the code jumps to the
> done label where asoc->peer.addip_serial is unconditionally incremented.
>
> This leaves the peer's ASCONF (serial N) unacknowledged while the local
> endpoint now expects serial N+1. When the peer retransmits serial N, it
> falls into the serial < addip_serial + 1 branch ,
> which attempts to look up a cached ACK for serial N. No cached ACK
> exists since the allocation failed, so the retransmission is silently
> discarded. The peer eventually times out and ABORTs the association.
>
> Move the addip_serial increment inside the if (asconf_ack) block so that
> the serial number is only advanced when the ASCONF_ACK is successfully
> created and cached. This way, on allocation failure, the serial number
> is unchanged and the peer's retransmitted ASCONF will be correctly
> re-processed.
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Qing Luo <[email protected]>

Acked-by: Xin Long <[email protected]>