[PATCH] orinoco: Fix memory leak and unneeded unlock in orinoco_join_ap()
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / orinoco.c
index f76fe3d10248e4b3c1ed1db46f246495cedd59ad..8b93b44291d48cab229bf6b30b0506b8608d2f72 100644 (file)
@@ -1046,7 +1046,7 @@ static void orinoco_join_ap(struct net_device *dev)
                return;
 
        if (orinoco_lock(priv, &flags) != 0)
-               goto out;
+               goto fail_lock;
 
        /* Sanity checks in case user changed something in the meantime */
        if (! priv->bssid_fixed)
@@ -1091,8 +1091,10 @@ static void orinoco_join_ap(struct net_device *dev)
                printk(KERN_ERR "%s: Error issuing join request\n", dev->name);
 
  out:
-       kfree(buf);
        orinoco_unlock(priv, &flags);
+
+ fail_lock:
+       kfree(buf);
 }
 
 /* Send new BSSID to userspace */