| From 9951ebfcdf2b97dbb28a5d930458424341e61aa2 Mon Sep 17 00:00:00 2001 |
| From: Johannes Berg <johannes.berg@intel.com> |
| Date: Fri, 21 Feb 2020 10:41:43 +0100 |
| Subject: nl80211: fix potential leak in AP start |
| |
| From: Johannes Berg <johannes.berg@intel.com> |
| |
| commit 9951ebfcdf2b97dbb28a5d930458424341e61aa2 upstream. |
| |
| If nl80211_parse_he_obss_pd() fails, we leak the previously |
| allocated ACL memory. Free it in this case. |
| |
| Fixes: 796e90f42b7e ("cfg80211: add support for parsing OBBS_PD attributes") |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Link: https://lore.kernel.org/r/20200221104142.835aba4cdd14.I1923b55ba9989c57e13978f91f40bfdc45e60cbd@changeid |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/wireless/nl80211.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/wireless/nl80211.c |
| +++ b/net/wireless/nl80211.c |
| @@ -4800,8 +4800,7 @@ static int nl80211_start_ap(struct sk_bu |
| err = nl80211_parse_he_obss_pd( |
| info->attrs[NL80211_ATTR_HE_OBSS_PD], |
| ¶ms.he_obss_pd); |
| - if (err) |
| - return err; |
| + goto out; |
| } |
| |
| nl80211_calculate_ap_params(¶ms); |
| @@ -4823,6 +4822,7 @@ static int nl80211_start_ap(struct sk_bu |
| } |
| wdev_unlock(wdev); |
| |
| +out: |
| kfree(params.acl); |
| |
| return err; |