Parcourir la source

atheros: Fix WEXT SIOCGIWESSID use with WE-21 and newer

The "too long" buffer (32+1 octets) prevented AP from starting up with
32 octet SSID with WE-21 and newer. Fix this by reducing the
SIOCGIWESSID buffer length.
Subrat Dash il y a 13 ans
Parent
commit
6a5200e699
1 fichiers modifiés avec 2 ajouts et 0 suppressions
  1. 2 0
      src/drivers/driver_atheros.c

+ 2 - 0
src/drivers/driver_atheros.c

@@ -1334,6 +1334,8 @@ atheros_get_ssid(void *priv, u8 *buf, int len)
 	os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
 	iwr.u.essid.pointer = (caddr_t) buf;
 	iwr.u.essid.length = len;
+	iwr.u.essid.length = (len > IW_ESSID_MAX_SIZE) ?
+		IW_ESSID_MAX_SIZE : len;
 
 	if (ioctl(drv->ioctl_sock, SIOCGIWESSID, &iwr) < 0) {
 		perror("ioctl[SIOCGIWESSID]");