rxrpc: Fix an error goto in rxrpc_connect_call()
authorDavid Howells <dhowells@redhat.com>
Mon, 14 Sep 2020 11:57:13 +0000 (12:57 +0100)
committerDavid Howells <dhowells@redhat.com>
Mon, 14 Sep 2020 11:58:17 +0000 (12:58 +0100)
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>
net/rxrpc/conn_client.c

index 0e4e187..180be4d 100644 (file)
@@ -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;
 }
 
 /*