[devel] wpa_supplicant is broken

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Сб Июл 2 15:55:38 MSD 2005


On Sat, Jul 02, 2005 at 03:29:02PM +0400, Sergey Vlasov wrote:
> >  		} crypt;
> > @@ -161,6 +160,7 @@
> >  	memset(param, 0, blen);
> >  	param->cmd = IPW_CMD_SET_WPA_IE;
> >  	param->u.wpa_ie.len = wpa_ie_len;
> > +	param->u.wpa_ie.data = (u8 *) malloc(wpa_ie_len);
> 
> А free кто будет делать?
Ага.

-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/
----------- следующая часть -----------
--- driver_ipw.c.orig	2005-05-24 09:44:25 +0400
+++ driver_ipw.c	2005-07-02 15:55:12 +0400
@@ -73,19 +73,18 @@
 		} wpa_param;
 		struct {
 			u32 len;
-			u8 reserved[32];
-			u8 data[0];
+			u8 *data;
 		} wpa_ie;
 	        struct{
-			u32 command;
-    			u32 reason_code;
+			int command;
+    			int reason_code;
 		} mlme;
 		struct {
 			u8 alg[IPW_CRYPT_ALG_NAME_LEN];
 			u8 set_tx;
 			u32 err;
 			u8 idx;
-			u8 seq[8];
+			u8 seq[8]; /* sequence counter (set: RX, get: TX) */
 			u16 key_len;
 			u8 key[0];
 		} crypt;
@@ -161,10 +160,11 @@
 	memset(param, 0, blen);
 	param->cmd = IPW_CMD_SET_WPA_IE;
 	param->u.wpa_ie.len = wpa_ie_len;
+	param->u.wpa_ie.data = (u8 *) malloc(wpa_ie_len);
 	memcpy(param->u.wpa_ie.data, wpa_ie, wpa_ie_len);
 	
 	ret = ipw_ioctl(drv, param, blen, 1);
-
+	free(param->u.wpa_ie.data);
 	free(param);
 	return ret;
 }
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050702/03c0900c/attachment-0001.bin>


Подробная информация о списке рассылки Devel