mesh: Reduce none 11N Self-protected Action frame allocation size
authorMasashi Honma <masashi.honma@gmail.com>
Sat, 15 Nov 2014 01:35:27 +0000 (10:35 +0900)
committerJouni Malinen <j@w1.fi>
Sun, 16 Nov 2014 17:43:11 +0000 (19:43 +0200)
Signed-off-by: Natsuki Itaya <Natsuki.Itaya@jp.sony.com>
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
wpa_supplicant/mesh_mpm.c

index 4600672..99dbf52 100644 (file)
@@ -220,21 +220,28 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
        u8 ie_len, add_plid = 0;
        int ret;
        int ampe = conf->security & MESH_CONF_SEC_AMPE;
+       size_t buf_len;
 
        if (!sta)
                return;
 
-       buf = wpabuf_alloc(2 +      /* capability info */
-                          2 +      /* AID */
-                          2 + 8 +  /* supported rates */
-                          2 + (32 - 8) +
-                          2 + 32 + /* mesh ID */
-                          2 + 7 +  /* mesh config */
-                          2 + 26 + /* HT capabilities */
-                          2 + 22 + /* HT operation */
-                          2 + 23 + /* peering management */
-                          2 + 96 + /* AMPE */
-                          2 + 16); /* MIC */
+       buf_len = 2 +      /* capability info */
+                 2 +      /* AID */
+                 2 + 8 +  /* supported rates */
+                 2 + (32 - 8) +
+                 2 + 32 + /* mesh ID */
+                 2 + 7 +  /* mesh config */
+                 2 + 23 + /* peering management */
+                 2 + 96 + /* AMPE */
+                 2 + 16;  /* MIC */
+#ifdef CONFIG_IEEE80211N
+       if (type != PLINK_CLOSE &&
+           wpa_s->current_ssid->mesh_ht_mode > CHAN_NO_HT) {
+               buf_len += 2 + 26 + /* HT capabilities */
+                          2 + 22;  /* HT operation */
+       }
+#endif /* CONFIG_IEEE80211N */
+       buf = wpabuf_alloc(buf_len);
        if (!buf)
                return;