summaryrefslogtreecommitdiffstats
path: root/net/rxrpc
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-09-14 12:57:13 +0100
committerDavid Howells <dhowells@redhat.com>2020-09-14 12:58:17 +0100
commit456b2f2dc7e585e1a031214c5698f1b00e02448b (patch)
treee50b14f4f138e20665000a3cf2d02db40b21d48a /net/rxrpc
parente059c6f340f6fccadd3db9993f06d4cc51305804 (diff)
downloadlinux-456b2f2dc7e585e1a031214c5698f1b00e02448b.tar.gz
linux-456b2f2dc7e585e1a031214c5698f1b00e02448b.tar.bz2
linux-456b2f2dc7e585e1a031214c5698f1b00e02448b.zip
rxrpc: Fix an error goto in rxrpc_connect_call()
Fix an error-handling goto in rxrpc_connect_call() whereby it will jump to free the bundle it failed to allocate. Fixes: 245500d853e9 ("rxrpc: Rewrite the client connection manager") Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc')
-rw-r--r--net/rxrpc/conn_client.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/rxrpc/conn_client.c b/net/rxrpc/conn_client.c
index 0e4e1879c24d..180be4da8d26 100644
--- a/net/rxrpc/conn_client.c
+++ b/net/rxrpc/conn_client.c
@@ -724,8 +724,9 @@ granted_channel:
/* Paired with the write barrier in rxrpc_activate_one_channel(). */
smp_rmb();
-out:
+out_put_bundle:
rxrpc_put_bundle(bundle);
+out:
_leave(" = %d", ret);
return ret;
@@ -742,7 +743,7 @@ wait_failed:
trace_rxrpc_client(call->conn, ret, rxrpc_client_chan_wait_failed);
rxrpc_set_call_completion(call, RXRPC_CALL_LOCAL_ERROR, 0, ret);
rxrpc_disconnect_client_call(bundle, call);
- goto out;
+ goto out_put_bundle;
}
/*