rxrpc: Fix transmission of an abort in response to an abort
[ 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: 248f219cb8
("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>
(cherry picked from commit 74bb4de32d92e9eda56680bc720edc662d416269)
This commit is contained in:
parent
9a8aba1680
commit
0bcca25db9
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue