iwinfo: null-terminate the ssid on nl80211 scan to avoid printing trailing garbage
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 30 May 2014 11:37:35 +0000 (11:37 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 30 May 2014 11:37:35 +0000 (11:37 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40884 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/network/utils/iwinfo/src/iwinfo_nl80211.c

index 4d0444a..8e58589 100644 (file)
@@ -1725,13 +1725,16 @@ static void nl80211_get_scanlist_ie(struct nlattr **bss,
        int ielen = nla_len(bss[NL80211_BSS_INFORMATION_ELEMENTS]);
        unsigned char *ie = nla_data(bss[NL80211_BSS_INFORMATION_ELEMENTS]);
        static unsigned char ms_oui[3] = { 0x00, 0x50, 0xf2 };
+       int len;
 
        while (ielen >= 2 && ielen >= ie[1])
        {
                switch (ie[0])
                {
                case 0: /* SSID */
-                       memcpy(e->ssid, ie + 2, min(ie[1], IWINFO_ESSID_MAX_SIZE));
+                       len = min(ie[1], IWINFO_ESSID_MAX_SIZE);
+                       memcpy(e->ssid, ie + 2, len);
+                       e->ssid[len] = 0;
                        break;
 
                case 48: /* RSN */