linux/net/rxrpc
David Howells 1ec0a7d5b0 rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
[ Upstream commit 4feb2c4462 ]

One of the error paths in rxrpc_do_sendmsg() doesn't unlock the call mutex
before returning.  Fix it to do this.

Note that this still doesn't get rid of the checker warning:

   ../net/rxrpc/sendmsg.c:617:5: warning: context imbalance in 'rxrpc_do_sendmsg' - wrong count at exit

I think the interplay between the socket lock and the call's user_mutex may
be too complicated for checker to analyse, especially as
rxrpc_new_client_call_for_sendmsg(), which it calls, returns with the
call's user_mutex if successful but unconditionally drops the socket lock.

Fixes: e754eba685 ("rxrpc: Provide a cmsg to specify the amount of Tx data for a call")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:14:39 +01:00
..
af_rxrpc.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
ar-internal.h rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI-CAN-15975] 2022-12-02 17:41:04 +01:00
call_accept.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
call_event.c rxrpc: Fix calc of resend age 2022-09-23 14:15:50 +02:00
call_object.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
conn_client.c rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI-CAN-15975] 2022-12-02 17:41:04 +01:00
conn_event.c rxrpc: Merge prime_packet_security into init_connection_security 2020-11-23 18:09:30 +00:00
conn_object.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
conn_service.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
input.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
insecure.c rxrpc: Ask the security class how much space to allow in a packet 2020-11-23 19:53:11 +00:00
Kconfig net: RxRPC: make dependent Kconfig symbols be shown indented 2021-08-18 10:12:11 +01:00
key.c rxrpc: Fix handling of an unsupported token type in rxrpc_read() 2021-01-13 10:38:00 -08:00
local_event.c rxrpc: Fix a typo 2021-06-02 14:01:55 -07:00
local_object.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
Makefile rxrpc: Split the server key type (rxrpc_s) into its own file 2020-11-23 18:09:29 +00:00
misc.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
net_ns.c rxrpc: Allow list of in-use local UDP endpoints to be viewed in /proc 2022-12-02 17:41:04 +01:00
output.c rxrpc: Fix ack.bufferSize to be 0 when generating an ack 2022-12-31 13:14:09 +01:00
peer_event.c rxrpc: Fix ICMP/ICMP6 error handling 2022-09-15 11:30:05 +02:00
peer_object.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
proc.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
protocol.h rxrpc: Improve jumbo packet counting 2019-08-27 09:48:37 +01:00
recvmsg.c rxrpc: Fix decision on when to generate an IDLE ACK 2022-06-09 10:23:02 +02:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-11-18 19:16:25 +01:00
rxkad.c rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2() 2022-09-15 11:30:05 +02:00
security.c rxrpc: Hand server key parsing off to the security class 2020-11-23 18:09:29 +00:00
sendmsg.c rxrpc: Fix missing unlock in rxrpc_do_sendmsg() 2022-12-31 13:14:39 +01:00
server_key.c rxrpc: fix some null-ptr-deref bugs in server_key.c 2022-04-08 14:24:10 +02:00
skbuff.c rxrpc: Use refcount_t rather than atomic_t 2022-12-02 17:41:04 +01:00
sysctl.c rxrpc: Fix listen() setting the bar too high for the prealloc rings 2022-06-09 10:23:02 +02:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00