SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 17 Jul 2012 18:47:30 +0000 (14:47 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 17 Jul 2012 21:02:57 +0000 (17:02 -0400)
The patch "SUNRPC: Add rpcauth_list_flavors()" introduces a new error
path in gss_mech_list_pseudoflavors, but fails to release the spin lock.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/auth_gss/gss_mech_switch.c

index 6ac5dfc..b174fcd 100644 (file)
@@ -257,8 +257,10 @@ int gss_mech_list_pseudoflavors(rpc_authflavor_t *array_ptr, int size)
        spin_lock(&registered_mechs_lock);
        list_for_each_entry(pos, &registered_mechs, gm_list) {
                for (j = 0; j < pos->gm_pf_num; j++) {
-                       if (i >= size)
+                       if (i >= size) {
+                               spin_unlock(&registered_mechs_lock);
                                return -ENOMEM;
+                       }
                        array_ptr[i++] = pos->gm_pfs[j].pseudoflavor;
                }
        }