+2
−1
Loading
rxrpc_input_packet_on_conn() can process a to-client packet after the current client call on the channel has already been torn down. In that case chan->call is NULL, rxrpc_try_get_call() returns NULL and there is no reference to drop. The client-side implicit-end error path does not account for that and unconditionally calls rxrpc_put_call(). This turns a protocol error path into a kernel crash instead of rejecting the packet. Only drop the call reference if one was actually acquired. Keep the existing protocol error handling unchanged. Fixes: 5e6ef4f1 ("rxrpc: Make the I/O thread take over the call and local processor work") Reported-by:Yifan Wu <yifanwucs@gmail.com> Reported-by:
Juefei Pu <tomapufckgml@gmail.com> Signed-off-by:
Douya Le <ldy3087146292@gmail.com> Co-developed-by:
Yuan Tan <tanyuan98@gmail.com> Signed-off-by:
Yuan Tan <tanyuan98@gmail.com> Suggested-by:
Xin Liu <bird@lzu.edu.cn> Signed-off-by:
Ao Zhou <n05ec@lzu.edu.cn> Signed-off-by:
David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: Simon Horman <horms@kernel.org> cc: linux-afs@lists.infradead.org cc: stable@kernel.org Link: https://patch.msgid.link/20260408121252.2249051-11-dhowells@redhat.com Signed-off-by:
Jakub Kicinski <kuba@kernel.org>