rx: fix mutex leak in error case 77/12777/2
authorBenjamin Kaduk <kaduk@mit.edu>
Thu, 16 Nov 2017 10:48:02 +0000 (04:48 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 28 Nov 2017 04:48:34 +0000 (23:48 -0500)
Reported by Mark Vitale

Reviewed-on: https://gerrit.openafs.org/12771
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 01bcfd3e14f6ee1faa4b8ce5a7932de37d585fd3)

Change-Id: I4384d6813a5cfb053e6991eb3c157fa59ecfa11b
Reviewed-on: https://gerrit.openafs.org/12777
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/rx/rx.c

index d25acef..95e88c2 100644 (file)
@@ -1248,6 +1248,7 @@ rxi_DestroyConnectionNoLock(struct rx_connection *conn)
     if ((conn->type == RX_CLIENT_CONNECTION)
        && (conn->flags & (RX_CONN_MAKECALL_WAITING|RX_CONN_MAKECALL_ACTIVE))) {
        conn->flags |= RX_CONN_DESTROY_ME;
+       MUTEX_EXIT(&rx_refcnt_mutex);
        MUTEX_EXIT(&conn->conn_data_lock);
        USERPRI;
        return;