Fixes the following W=1 kernel build warning(s):

 drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c: In function 
‘ieee80211_rx_frame_softmac’:
 drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2009:1: warning: the 
frame size of 1152 bytes is larger than 1024 bytes [-Wframe-larger-than=]

Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Cc: Romain Perier <romain.per...@gmail.com>
Cc: Allen Pais <ap...@linux.microsoft.com>
Cc: Andrea Merello <andrea.mere...@gmail.com>
Cc: linux-stag...@lists.linux.dev
Signed-off-by: Lee Jones <lee.jo...@linaro.org>
---
 drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c 
b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
index 690b664df8fae..73f63d4510e77 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c
@@ -1911,8 +1911,11 @@ ieee80211_rx_frame_softmac(struct ieee80211_device 
*ieee, struct sk_buff *skb,
                if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
                    ieee->state == IEEE80211_ASSOCIATING_AUTHENTICATED &&
                    ieee->iw_mode == IW_MODE_INFRA) {
-                       struct ieee80211_network network_resp;
-                       struct ieee80211_network *network = &network_resp;
+                       struct ieee80211_network *network;
+
+                       network = kzalloc(sizeof(*network), GFP_KERNEL);
+                       if (!network)
+                               return -ENOMEM;
 
                        errcode = assoc_parse(ieee, skb, &aid);
                        if (!errcode) {
@@ -1923,7 +1926,6 @@ ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, 
struct sk_buff *skb,
                                /* Let the register setting defaultly with 
Legacy station */
                                if (ieee->qos_support) {
                                        assoc_resp = (struct 
ieee80211_assoc_response_frame *)skb->data;
-                                       memset(network, 0, sizeof(*network));
                                        if (ieee80211_parse_info_param(ieee, 
assoc_resp->info_element,\
                                                                       
rx_stats->len - sizeof(*assoc_resp), \
                                                                       network, 
rx_stats)) {
@@ -1949,6 +1951,7 @@ ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, 
struct sk_buff *skb,
                                else
                                        ieee80211_associate_abort(ieee);
                        }
+                       kfree(network);
                }
                break;
 
-- 
2.27.0

Reply via email to