[PATCH net v4 00/15] rxrpc: Miscellaneous fixes

David Howells posted 15 patches 8 hours ago
include/trace/events/rxrpc.h |  4 +++-
net/rxrpc/af_rxrpc.c         |  2 +-
net/rxrpc/ar-internal.h      |  2 +-
net/rxrpc/call_object.c      | 25 ++++++++++--------------
net/rxrpc/conn_event.c       |  5 +++--
net/rxrpc/input_rack.c       |  2 +-
net/rxrpc/io_thread.c        |  3 ++-
net/rxrpc/key.c              | 38 +++++++++++++++++++++---------------
net/rxrpc/output.c           |  2 ++
net/rxrpc/proc.c             |  5 +++--
net/rxrpc/rxgk.c             |  5 +++--
net/rxrpc/rxkad.c            |  6 +++++-
net/rxrpc/sendmsg.c          |  2 +-
net/rxrpc/server_key.c       |  3 +++
14 files changed, 60 insertions(+), 44 deletions(-)
[PATCH net v4 00/15] rxrpc: Miscellaneous fixes
Posted by David Howells 8 hours ago
Here are some fixes for rxrpc:

 (1) Fix key quota calculation.

 (2) Fix a memory leak.

 (3) Fix rxrpc_new_client_call_for_sendmsg() to substitute NULL for an
     empty key.

     Might want to remove this substitution entirely or handle it in
     rxrpc_init_client_call_security() instead.

 (4) Fix deletion of call->link to be RCU safe.

 (5) Fix missing bounds checks when parsing RxGK tickets.

 (6) Fix use of wrong skbuff to get challenge serial number.  Also actually
     substitute the newer response skbuff and release the older one.

 (7) Fix unexpected RACK timer warning to report old mode.

 (8) Fix server keyring refcount leak.

 (9) Fix call key refcount leak.

(10) Fix the interaction of jumbograms with Tx window space, setting the
     request-ack flag when the window space is getting low, typically
     because each jumbogram take a big bite out of the window and fewer UDP
     packets get traded.

(11) Don't call rxrpc_put_call() with a NULL pointer.

(12) Reject undecryptable rxkad response tickets by checking result of
     decryption.

(13) Fix buffer bounds calculation in the RESPONSE authenticator parser.

(14) Fix refcount leak on multiple setting of server keyring.

David

The patches can be found here also:

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

Changes
=======
ver #4)
- Got rid of the on_list()/on_list_rcu() patch.
- Removed the list_del_init from rxrpc_destroy_all_calls().
- Made the list_del_rcu() in rxrpc_put_call() unconditional.
- Added four new patches.

ver #3)
- Rename the dwc2's on_list() to dwc2_on_list() to free up the name.
- Added a patch to fix the interaction of jumbograms with window space.

ver #2)
- AI review[1]:
  - Added a patch to fix key quota calculation.
  - Added a patch to fix a memory leak.
  - Added a patch to use NULL instead of an empty key in rxrpc_sengmsg().
  - Added a patch to use RCU-safe deletion on call->link.
  - Modified the response packet selection patch to select the newer
    response when there's an older response - and to release the older
    response skbuff.
- Move on_list_rcu() and add on_list().

Link: https://sashiko.dev/#/patchset/20260319150150.4189381-1-dhowells%40redhat.com [1]

Alok Tiwari (2):
  rxrpc: Fix use of wrong skb when comparing queued RESP challenge
    serial
  rxrpc: Fix rack timer warning to report unexpected mode

Anderson Nascimento (2):
  rxrpc: Fix keyring reference count leak in rxrpc_setsockopt()
  rxrpc: Fix key reference count leak from call->key

David Howells (4):
  rxrpc: Fix key quota calculation for multitoken keys
  rxrpc: Fix key parsing memleak
  rxrpc: Fix anonymous key handling
  rxrpc: Fix call removal to use RCU safe deletion

Douya Le (1):
  rxrpc: Only put the call ref if one was acquired

Keenan Dong (2):
  rxrpc: fix RESPONSE authenticator parser OOB read
  rxrpc: fix oversized RESPONSE authenticator length check

Luxiao Xu (1):
  rxrpc: fix reference count leak in rxrpc_server_keyring()

Marc Dionne (1):
  rxrpc: Fix to request an ack if window is limited

Oleh Konko (1):
  rxrpc: Fix RxGK token loading to check bounds

Yuqi Xu (1):
  rxrpc: reject undecryptable rxkad response tickets

 include/trace/events/rxrpc.h |  4 +++-
 net/rxrpc/af_rxrpc.c         |  2 +-
 net/rxrpc/ar-internal.h      |  2 +-
 net/rxrpc/call_object.c      | 25 ++++++++++--------------
 net/rxrpc/conn_event.c       |  5 +++--
 net/rxrpc/input_rack.c       |  2 +-
 net/rxrpc/io_thread.c        |  3 ++-
 net/rxrpc/key.c              | 38 +++++++++++++++++++++---------------
 net/rxrpc/output.c           |  2 ++
 net/rxrpc/proc.c             |  5 +++--
 net/rxrpc/rxgk.c             |  5 +++--
 net/rxrpc/rxkad.c            |  6 +++++-
 net/rxrpc/sendmsg.c          |  2 +-
 net/rxrpc/server_key.c       |  3 +++
 14 files changed, 60 insertions(+), 44 deletions(-)