]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
rxrpc: Fix transmission of an abort in response to an abort
authorDavid Howells <dhowells@redhat.com>
Thu, 17 Jul 2025 07:43:44 +0000 (08:43 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jul 2025 06:53:20 +0000 (08:53 +0200)
[ Upstream commit e9c0b96ec0a34fcacdf9365713578d83cecac34c ]

Under some circumstances, such as when a server socket is closing, ABORT
packets will be generated in response to incoming packets.  Unfortunately,
this also may include generating aborts in response to incoming aborts -
which may cause a cycle.  It appears this may be made possible by giving
the client a multicast address.

Fix this such that rxrpc_reject_packet() will refuse to generate aborts in
response to aborts.

Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Junvyyang, Tencent Zhuque Lab <zhuque@tencent.com>
cc: LePremierHomme <kwqcheii@proton.me>
cc: Linus Torvalds <torvalds@linux-foundation.org>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
Link: https://patch.msgid.link/20250717074350.3767366-5-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/rxrpc/output.c

index cad6a7d18e0405ff82bee51bbb6f3192d4f963d6..4bbb27a48bd8ae61cae9dcf78e827dbbba61df4c 100644 (file)
@@ -589,6 +589,9 @@ void rxrpc_reject_packet(struct rxrpc_local *local, struct sk_buff *skb)
        __be32 code;
        int ret, ioc;
 
+       if (sp->hdr.type == RXRPC_PACKET_TYPE_ABORT)
+               return; /* Never abort an abort. */
+
        rxrpc_see_skb(skb, rxrpc_skb_see_reject);
 
        iov[0].iov_base = &whdr;