Browse 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 13 years ago
parent
commit
6a5200e699
1 changed files with 2 additions and 0 deletions
  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);
 	os_strlcpy(iwr.ifr_name, drv->iface, IFNAMSIZ);
 	iwr.u.essid.pointer = (caddr_t) buf;
 	iwr.u.essid.pointer = (caddr_t) buf;
 	iwr.u.essid.length = len;
 	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) {
 	if (ioctl(drv->ioctl_sock, SIOCGIWESSID, &iwr) < 0) {
 		perror("ioctl[SIOCGIWESSID]");
 		perror("ioctl[SIOCGIWESSID]");