From: David Howells Date: Thu, 17 Jul 2025 07:43:44 +0000 (+0100) Subject: rxrpc: Fix transmission of an abort in response to an abort X-Git-Tag: v6.16-rc7~37^2~1^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e9c0b96ec0a34fcacdf9365713578d83cecac34c;p=thirdparty%2Flinux.git rxrpc: Fix transmission of an abort in response to an abort 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 Reviewed-by: Jeffrey Altman cc: Marc Dionne cc: Junvyyang, Tencent Zhuque Lab cc: LePremierHomme cc: Linus Torvalds cc: Simon Horman cc: linux-afs@lists.infradead.org Link: https://patch.msgid.link/20250717074350.3767366-5-dhowells@redhat.com Signed-off-by: Jakub Kicinski --- diff --git a/net/rxrpc/output.c b/net/rxrpc/output.c index ef7b3096c95eb..17c33b5cf7dde 100644 --- a/net/rxrpc/output.c +++ b/net/rxrpc/output.c @@ -814,6 +814,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;