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]>