[PATCH net 0/6] rxrpc: Leak fixes

From: David Howells
Date: Fri May 20 2022 - 12:33:58 EST



Here are some fixes for AF_RXRPC:

(1) Reenable IPv6 checksums on the UDP transport socket after the
conversion to the UDP tunnel API disabled it.

(2) Fix listen() allowing preallocation to overrun the prealloc buffer.

(3) Prevent resending the request if we've seen the reply starting to
arrive.

(4) Fix accidental sharing of ACK state between transmission and
reception.

(5) Ignore ACKs in which ack.previousPacket regresses. This indicates the
highest DATA number so far seen, so should not be seen to go
backwards.

(6) Fix the determination of when to generate an IDLE-type ACK,
simplifying it so that we generate one if we have more than two DATA
packets that aren't hard-acked (consumed) or soft-acked (in the rx
buffer, but could be discarded and re-requested).

The patches are tagged here:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-fixes-20220520

and can also be found on the following branch:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes

Tested-by: kafs-testing+fedora34_64checkkafs-build-495@xxxxxxxxxxxx

David
---
David Howells (6):
rxrpc: Enable IPv6 checksums on transport socket
rxrpc: Fix listen() setting the bar too high for the prealloc rings
rxrpc: Don't try to resend the request if we're receiving the reply
rxrpc: Fix overlapping ACK accounting
rxrpc: Don't let ack.previousPacket regress
rxrpc: Fix decision on when to generate an IDLE ACK


include/trace/events/rxrpc.h | 2 +-
net/rxrpc/ar-internal.h | 13 +++++++------
net/rxrpc/call_event.c | 3 ++-
net/rxrpc/input.c | 31 ++++++++++++++++++++-----------
net/rxrpc/local_object.c | 3 +++
net/rxrpc/output.c | 20 ++++++++++++--------
net/rxrpc/recvmsg.c | 8 +++-----
net/rxrpc/sysctl.c | 4 ++--
8 files changed, 50 insertions(+), 34 deletions(-)