Commit f3cb4cc1 authored by Pavel Roskin's avatar Pavel Roskin Committed by Jeff Garzik

[PATCH] orinoco: Fix memory leak and unneeded unlock in orinoco_join_ap()

Signed-off-by: default avatarPavel Roskin <proski@gnu.org>

Fix memory leak and unneeded unlock in orinoco_join_ap()

If orinoco_lock() fails, the code would still run orinoco_unlock(),
instead of freeing the allocated memory.  Found by sparse.
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 4c082025
...@@ -1046,7 +1046,7 @@ static void orinoco_join_ap(struct net_device *dev) ...@@ -1046,7 +1046,7 @@ static void orinoco_join_ap(struct net_device *dev)
return; return;
if (orinoco_lock(priv, &flags) != 0) if (orinoco_lock(priv, &flags) != 0)
goto out; goto fail_lock;
/* Sanity checks in case user changed something in the meantime */ /* Sanity checks in case user changed something in the meantime */
if (! priv->bssid_fixed) if (! priv->bssid_fixed)
...@@ -1091,8 +1091,10 @@ static void orinoco_join_ap(struct net_device *dev) ...@@ -1091,8 +1091,10 @@ static void orinoco_join_ap(struct net_device *dev)
printk(KERN_ERR "%s: Error issuing join request\n", dev->name); printk(KERN_ERR "%s: Error issuing join request\n", dev->name);
out: out:
kfree(buf);
orinoco_unlock(priv, &flags); orinoco_unlock(priv, &flags);
fail_lock:
kfree(buf);
} }
/* Send new BSSID to userspace */ /* Send new BSSID to userspace */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment