tags 402111 + patch
thanks

Only for documentation http://madwifi.org/changeset/1842

(the patch is attached to this email)

--- madwifi-0.9.2+r1809.20061115.orig/net80211/ieee80211_wireless.c     2006-12-08 08:29:46.000000000 -0300
+++ madwifi-0.9.2+r1809.20061115/net80211/ieee80211_wireless.c  2006-12-08 08:33:23.000000000 -0300
@@ -1565,6 +1565,8 @@
        memcpy(p, leader, leader_len);
        bufsize -= leader_len;
        p += leader_len;
+       if (bufsize < ielen)
+               return 0;
        for (i = 0; i < ielen && bufsize > 2; i++)
                p += sprintf(p, "%02x", ie[i]);
        return (i == ielen ? p - (u_int8_t *)buf : 0);
@@ -1587,7 +1589,8 @@
        char *end_buf = req->end_buf;
        char *last_ev;
 #if WIRELESS_EXT > 14
-       char buf[64 * 2 + 30];
+#define MAX_IE_LENGTH 64 * 2 + 30
+       char buf[MAX_IE_LENGTH];
 #ifndef IWEVGENIE
        static const char rsn_leader[] = "rsn_ie=";
        static const char wpa_leader[] = "wpa_ie=";
@@ -1735,6 +1738,8 @@
          last_ev = current_ev;
 #ifdef IWEVGENIE
                memset(&iwe, 0, sizeof(iwe));
+               if ((se->se_wpa_ie[1] + 2) > MAX_IE_LENGTH)
+                       return E2BIG;
                memcpy(buf, se->se_rsn_ie, se->se_rsn_ie[1] + 2);
                iwe.cmd = IWEVGENIE;
                iwe.u.data.length = se->se_rsn_ie[1] + 2;

Reply via email to