From 766aaa604cda5d23a88eb0f8495b49ec59ca6db7 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Fri, 4 Nov 2011 13:56:28 -0700 Subject: [PATCH] net: wireless: bcmdhd: Fix possible memory leak in escan/iscan Signed-off-by: Dmitry Shmidt --- drivers/net/wireless/bcmdhd/wl_cfg80211.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/bcmdhd/wl_cfg80211.c index 526ba47895bc..daa7d2605aaf 100644 --- a/drivers/net/wireless/bcmdhd/wl_cfg80211.c +++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.c @@ -1245,8 +1245,7 @@ wl_run_iscan(struct wl_iscan_ctrl *iscan, struct cfg80211_scan_request *request, } params = (struct wl_iscan_params *)kzalloc(params_size, GFP_KERNEL); if (!params) { - err = -ENOMEM; - goto done; + return -ENOMEM; } if (request != NULL) @@ -1270,8 +1269,8 @@ wl_run_iscan(struct wl_iscan_ctrl *iscan, struct cfg80211_scan_request *request, WL_ERR(("error (%d)\n", err)); } } - kfree(params); done: + kfree(params); return err; } @@ -1348,6 +1347,7 @@ wl_run_escan(struct wl_priv *wl, struct net_device *ndev, params->sync_id = htod16(0x1234); if (params_size + sizeof("escan") >= WLC_IOCTL_MEDLEN) { WL_ERR(("ioctl buffer length not sufficient\n")); + kfree(params); err = -ENOMEM; goto exit; } -- 2.34.1