rpms/wpa_supplicant/F-9 wpa_supplicant-0.6.4-handle-invalid-ies.patch, NONE, 1.1 wpa_supplicant-0.6.4-scan-fixes-1.patch, NONE, 1.1 wpa_supplicant-0.6.4-scan-fixes-2.patch, NONE, 1.1 wpa_supplicant-0.6.4-set-mode-handler.patch, NONE, 1.1 wpa_supplicant-0.6.4-validate-wext-event.patch, NONE, 1.1 sources, 1.8, 1.9 wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch, 1.2, 1.3 wpa_supplicant-assoc-timeout.patch, 1.3, 1.4 wpa_supplicant.spec, 1.47, 1.48 wpa_supplicant-0.6.3-dont-reschedule-specific-scans.patch, 1.1, NONE wpa_supplicant-0.6.3-fix-dbus-use-after-free.patch, 1.1, NONE wpa_supplicant-0.6.3-wext-dont-overwrite-BSS-frequency.patch, 1.1, NONE wpa_supplicant-0.6.3-wext-handle-mac80211-mode-switches.patch, 1.1, NONE

Daniel Williams dcbw at fedoraproject.org
Mon Oct 13 16:08:42 UTC 2008


Author: dcbw

Update of /cvs/extras/rpms/wpa_supplicant/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv18388

Modified Files:
	sources wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch 
	wpa_supplicant-assoc-timeout.patch wpa_supplicant.spec 
Added Files:
	wpa_supplicant-0.6.4-handle-invalid-ies.patch 
	wpa_supplicant-0.6.4-scan-fixes-1.patch 
	wpa_supplicant-0.6.4-scan-fixes-2.patch 
	wpa_supplicant-0.6.4-set-mode-handler.patch 
	wpa_supplicant-0.6.4-validate-wext-event.patch 
Removed Files:
	wpa_supplicant-0.6.3-dont-reschedule-specific-scans.patch 
	wpa_supplicant-0.6.3-fix-dbus-use-after-free.patch 
	wpa_supplicant-0.6.3-wext-dont-overwrite-BSS-frequency.patch 
	wpa_supplicant-0.6.3-wext-handle-mac80211-mode-switches.patch 
Log Message:
* Mon Oct 15 2008 Dan Williams <dcbw at redhat.com> - 1:0.6.4-2
- Handle encryption keys correctly when switching 802.11 modes (rh #459399)
- Better scanning behavior on resume from suspend/hibernate
- Better interaction with newer kernels and drivers



wpa_supplicant-0.6.4-handle-invalid-ies.patch:

--- NEW FILE wpa_supplicant-0.6.4-handle-invalid-ies.patch ---
commit fd630bc183fb79d0a14b5f3a346544f3d277bd05
Author: Jouni Malinen <jouni.malinen at atheros.com>
Date:   Wed Aug 27 09:52:16 2008 +0300

    Fixed WEXT scan result parser to not crash on invalid IEs (zero len buffer)
    
    If IWEVGENIE or custom event wpa_ie/rsn_ie is received in scan with empty
    buffer, the previous version ended up calling realloc(NULL, 0) which seems
    to return a non-NULL value in some cases. When this return value is passed
    again into realloc with realloc(ptr, 0), the returned value could be NULL.
    If the ptr is then freed (os_free(data.ie) in SIOCGIWAP handling), glibc
    may crash due to invalid pointer being freed (or double-freed?). The
    non-NULL realloc(NULL, 0) return value from glibc looks a bit odd behavior,
    but anyway, better avoid this case completely and just skip the IE events
    that have an empty buffer.
    
    This issue should not show up with drivers that produce proper scan results
    since the IEs will always include the two-octet header. However, it seems
    to be possible to see this when using 64-bit kernel and 32-bit userspace
    with incorrect compat-ioctl processing.

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 45e3e1f..98dddd6 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -1618,6 +1618,9 @@ static void wext_get_scan_iwevgenie(struct iw_event *iwe,
 	char *genie, *gpos, *gend;
 	u8 *tmp;
 
+	if (iwe->u.data.length == 0)
+		return;
+
 	gpos = genie = custom;
 	gend = genie + iwe->u.data.length;
 	if (gend > end) {
@@ -1650,7 +1653,7 @@ static void wext_get_scan_custom(struct iw_event *iwe,
 		int bytes;
 		spos = custom + 7;
 		bytes = custom + clen - spos;
-		if (bytes & 1)
+		if (bytes & 1 || bytes == 0)
 			return;
 		bytes /= 2;
 		tmp = os_realloc(res->ie, res->ie_len + bytes);
@@ -1664,7 +1667,7 @@ static void wext_get_scan_custom(struct iw_event *iwe,
 		int bytes;
 		spos = custom + 7;
 		bytes = custom + clen - spos;
-		if (bytes & 1)
+		if (bytes & 1 || bytes == 0)
 			return;
 		bytes /= 2;
 		tmp = os_realloc(res->ie, res->ie_len + bytes);
diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index 6aac427..a3c4733 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -1447,6 +1447,9 @@ static void wext_get_scan_iwevgenie(struct iw_event *iwe,
 	char *genie, *gpos, *gend;
 	u8 *tmp;
 
+	if (iwe->u.data.length == 0)
+		return;
+
 	gpos = genie = custom;
 	gend = genie + iwe->u.data.length;
 	if (gend > end) {
@@ -1479,7 +1482,7 @@ static void wext_get_scan_custom(struct iw_event *iwe,
 		int bytes;
 		spos = custom + 7;
 		bytes = custom + clen - spos;
-		if (bytes & 1)
+		if (bytes & 1 || bytes == 0)
 			return;
 		bytes /= 2;
 		tmp = os_realloc(res->ie, res->ie_len + bytes);
@@ -1493,7 +1496,7 @@ static void wext_get_scan_custom(struct iw_event *iwe,
 		int bytes;
 		spos = custom + 7;
 		bytes = custom + clen - spos;
-		if (bytes & 1)
+		if (bytes & 1 || bytes == 0)
 			return;
 		bytes /= 2;
 		tmp = os_realloc(res->ie, res->ie_len + bytes);

wpa_supplicant-0.6.4-scan-fixes-1.patch:

--- NEW FILE wpa_supplicant-0.6.4-scan-fixes-1.patch ---
commit 2064c2f98515016c376f3b69bfe161c85639e764
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Wed Sep 24 12:48:33 2008 +0300

    Restore scan request settings if initial association failed
    
    The scan path to initiate another scan if the initial association failed
    was broken due to wpa_s->scan_req being zeroed earlier in
    wpa_supplicant_scan(). This caused the second scan to bail out early
    since it thought this was not a requested scan.

diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index c2549e2..8767109 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -137,6 +137,7 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
 	if (wpa_s->scan_res_tried == 0 && wpa_s->conf->ap_scan == 1 &&
 	    !wpa_s->use_client_mlme) {
 		wpa_s->scan_res_tried++;
+		wpa_s->scan_req = scan_req;
 		wpa_printf(MSG_DEBUG, "Trying to get current scan results "
 			   "first without requesting a new scan to speed up "
 			   "initial association");

wpa_supplicant-0.6.4-scan-fixes-2.patch:

--- NEW FILE wpa_supplicant-0.6.4-scan-fixes-2.patch ---
commit 23e072374ea500002b8beec5d0e87f9fc6a7609c
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Wed Sep 24 12:51:08 2008 +0300

    Don't post scan results when initial scan is emtpy
    
    When the initial scan is made, just the cached results from the driver
    are used. If this is empty, it's useless to post the results since
    another scan is being scheduled immediately. This just causes extra
    processing from listeners for no gain.

diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 0f9b338..04e3152 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -551,9 +551,18 @@ static void wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s)
 		goto req_scan;
 	}
 
-	wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
-
-	wpa_supplicant_dbus_notify_scan_results(wpa_s);
+	/*
+	 * Don't post the results if this was the initial cached
+	 * and there were no results.
+	 */
+	if (wpa_s->scan_res_tried == 1 && wpa_s->conf->ap_scan == 1 &&
+	    wpa_s->scan_res->num == 0) {
+		wpa_msg(wpa_s, MSG_DEBUG, "Cached scan results are "
+			"empty - not posting");
+	} else {
+		wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
+		wpa_supplicant_dbus_notify_scan_results(wpa_s);
+	}
 
 	if (wpa_s->conf->ap_scan == 2 || wpa_s->disconnected)
 		return;

wpa_supplicant-0.6.4-set-mode-handler.patch:

--- NEW FILE wpa_supplicant-0.6.4-set-mode-handler.patch ---
commit ec5f180a24cd31ba9d3d7f2abc9dc557fd16602f
Author: Dan Williams <dcbw at redhat.com>
Date:   Mon Sep 29 16:45:49 2008 +0300

    Add an optional set_mode() driver_ops handler for setting mode before keys
    
    A bug just got reported as a result of this for mac80211 drivers.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=459399
    
    The basic problem is that since taking the device down clears the keys
    from the driver on many mac80211-based cards, and since the mode gets
    set _after_ the keys have been set in the driver, the keys get cleared
    on a mode switch and the resulting association is wrong.  The report is
    about ad-hoc mode specifically, but this could happen when switching
    from adhoc back to managed mode.

diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 70dc075..77a2ceb 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -929,6 +929,20 @@ struct wpa_driver_ops {
 	 * Returns: 0 on success, -1 on failure
 	 */
 	int (*set_probe_req_ie)(void *, const u8 *ies, size_t ies_len);
+
+ 	/**
+	 * set_mode - Request driver to set the operating mode
+	 * @priv: private driver interface data
+	 * @mode: Operation mode (infra/ibss) IEEE80211_MODE_*
+	 *
+	 * This handler will be called before any key configuration and call to
+	 * associate() handler in order to allow the operation mode to be
+	 * configured as early as possible. This information is also available
+	 * in associate() params and as such, some driver wrappers may not need
+	 * to implement set_mode() handler.
+	 * Returns: 0 on success, -1 on failure
+	 */
+	int (*set_mode)(void *priv, int mode);
 };
 
 /**
diff --git a/src/drivers/driver_ndis.c b/src/drivers/driver_ndis.c
index da4f90f..f55bd2e 100644
--- a/src/drivers/driver_ndis.c
+++ b/src/drivers/driver_ndis.c
@@ -2829,5 +2829,7 @@ const struct wpa_driver_ops wpa_driver_ndis_ops = {
 	NULL /* mlme_remove_sta */,
 	NULL /* update_ft_ies */,
 	NULL /* send_ft_action */,
-	wpa_driver_ndis_get_scan_results
+	wpa_driver_ndis_get_scan_results,
+	NULL /* set_probe_req_ie */,
+	NULL /* set_mode */
 };
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 98dddd6..a207363 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2226,8 +2226,6 @@ static int wpa_driver_nl80211_associate(
 	    wpa_driver_nl80211_set_bssid(drv, NULL) < 0)
 		ret = -1;
 
-	if (wpa_driver_nl80211_set_mode(drv, params->mode) < 0)
-		ret = -1;
 	/* TODO: should consider getting wpa version and cipher/key_mgmt suites
 	 * from configuration, not from here, where only the selected suite is
 	 * available */
@@ -2859,6 +2857,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
 	.get_scan_results2 = wpa_driver_nl80211_get_scan_results,
 	.deauthenticate = wpa_driver_nl80211_deauthenticate,
 	.disassociate = wpa_driver_nl80211_disassociate,
+	.set_mode = wpa_driver_nl80211_set_mode,
 	.associate = wpa_driver_nl80211_associate,
 	.set_auth_alg = wpa_driver_nl80211_set_auth_alg,
 	.init = wpa_driver_nl80211_init,
diff --git a/src/drivers/driver_test.c b/src/drivers/driver_test.c
index 5c6e6f1..7f7f129 100644
--- a/src/drivers/driver_test.c
+++ b/src/drivers/driver_test.c
@@ -982,5 +982,6 @@ const struct wpa_driver_ops wpa_driver_test_ops = {
 	NULL /* update_ft_ies */,
 	NULL /* send_ft_action */,
 	wpa_driver_test_get_scan_results2,
-	NULL /* set_probe_req_ie */
+	NULL /* set_probe_req_ie */,
+	NULL /* set_mode */
 };
diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index 6b7f1a7..a618a74 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -2206,8 +2206,6 @@ int wpa_driver_wext_associate(void *priv,
 	    wpa_driver_wext_set_bssid(drv, NULL) < 0)
 		ret = -1;
 
-	if (wpa_driver_wext_set_mode(drv, params->mode) < 0)
-		ret = -1;
 	/* TODO: should consider getting wpa version and cipher/key_mgmt suites
 	 * from configuration, not from here, where only the selected suite is
 	 * available */
@@ -2782,6 +2780,7 @@ const struct wpa_driver_ops wpa_driver_wext_ops = {
 	.get_scan_results2 = wpa_driver_wext_get_scan_results,
 	.deauthenticate = wpa_driver_wext_deauthenticate,
 	.disassociate = wpa_driver_wext_disassociate,
+	.set_mode = wpa_driver_wext_set_mode,
 	.associate = wpa_driver_wext_associate,
 	.set_auth_alg = wpa_driver_wext_set_auth_alg,
 	.init = wpa_driver_wext_init,
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 4c9482f..a36c65b 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -937,6 +937,11 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
 	 * previous association. */
 	wpa_sm_set_assoc_wpa_ie(wpa_s->wpa, NULL, 0);
 
+	if (wpa_drv_set_mode(wpa_s, ssid->mode)) {
+		wpa_printf(MSG_WARNING, "Failed to set operating mode");
+		assoc_failed = 1;
+	}
+
 #ifdef IEEE8021X_EAPOL
 	if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
 		if (ssid->leap) {
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index a2e3dd5..9afae2a 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -448,6 +448,14 @@ static inline int wpa_drv_set_wpa(struct wpa_supplicant *wpa_s, int enabled)
 	return 0;
 }
 
+static inline int wpa_drv_set_mode(struct wpa_supplicant *wpa_s, int mode)
+{
+	if (wpa_s->driver->set_mode) {
+		return wpa_s->driver->set_mode(wpa_s->drv_priv, mode);
+	}
+	return 0;
+}
+
 static inline int wpa_drv_associate(struct wpa_supplicant *wpa_s,
 				    struct wpa_driver_associate_params *params)
 {

wpa_supplicant-0.6.4-validate-wext-event.patch:

--- NEW FILE wpa_supplicant-0.6.4-validate-wext-event.patch ---
commit 36b5e559f1387d4e02059753ecfb04461d62f381
Author: Jouni Malinen <jouni.malinen at atheros.com>
Date:   Sat Sep 27 10:49:56 2008 +0300

    Validate WEXT event iwe->u.data.length before using the event data
    
    This is needed to avoid crashing wpa_supplicant with invalid event messages
    that may be received when using 64-bit kernel with 32-bit userspace.

diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index a3c4733..6b7f1a7 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -652,12 +652,20 @@ static void wpa_driver_wext_event_wireless(struct wpa_driver_wext_data *drv,
 			}
 			break;
 		case IWEVMICHAELMICFAILURE:
+			if (custom + iwe->u.data.length > end) {
+				wpa_printf(MSG_DEBUG, "WEXT: Invalid "
+					   "IWEVMICHAELMICFAILURE length");
+				return;
+			}
 			wpa_driver_wext_event_wireless_michaelmicfailure(
 				ctx, custom, iwe->u.data.length);
 			break;
 		case IWEVCUSTOM:
-			if (custom + iwe->u.data.length > end)
+			if (custom + iwe->u.data.length > end) {
+				wpa_printf(MSG_DEBUG, "WEXT: Invalid "
+					   "IWEVCUSTOM length");
 				return;
+			}
 			buf = os_malloc(iwe->u.data.length + 1);
 			if (buf == NULL)
 				return;
@@ -673,14 +681,29 @@ static void wpa_driver_wext_event_wireless(struct wpa_driver_wext_data *drv,
 			wpa_supplicant_event(ctx, EVENT_SCAN_RESULTS, NULL);
 			break;
 		case IWEVASSOCREQIE:
+			if (custom + iwe->u.data.length > end) {
+				wpa_printf(MSG_DEBUG, "WEXT: Invalid "
+					   "IWEVASSOCREQIE length");
+				return;
+			}
 			wpa_driver_wext_event_wireless_assocreqie(
 				drv, custom, iwe->u.data.length);
 			break;
 		case IWEVASSOCRESPIE:
+			if (custom + iwe->u.data.length > end) {
+				wpa_printf(MSG_DEBUG, "WEXT: Invalid "
+					   "IWEVASSOCRESPIE length");
+				return;
+			}
 			wpa_driver_wext_event_wireless_assocrespie(
 				drv, custom, iwe->u.data.length);
 			break;
 		case IWEVPMKIDCAND:
+			if (custom + iwe->u.data.length > end) {
+				wpa_printf(MSG_DEBUG, "WEXT: Invalid "
+					   "IWEVPMKIDCAND length");
+				return;
+			}
 			wpa_driver_wext_event_wireless_pmkidcand(
 				drv, custom, iwe->u.data.length);
 			break;


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/wpa_supplicant/F-9/sources,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- sources	3 Mar 2008 17:20:11 -0000	1.8
+++ sources	13 Oct 2008 16:08:42 -0000	1.9
@@ -1,2 +1,2 @@
 b82289b140cc1c66db11564bde248d8a  madwifi-headers-r1475.tar.bz2
-b51b2975f21006f85f7297f3fb1acde1  wpa_supplicant-0.6.3.tar.gz
+eb06a9a05d3916addf9451297a558aa2  wpa_supplicant-0.6.4.tar.gz

wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch:

Index: wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch
===================================================================
RCS file: /cvs/extras/rpms/wpa_supplicant/F-9/wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch	3 Mar 2008 17:20:11 -0000	1.2
+++ wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch	13 Oct 2008 16:08:42 -0000	1.3
@@ -1,26 +1,25 @@
-Index: wpa_supplicant-0.6.3/src/drivers/driver_wext.c
-===================================================================
---- wpa_supplicant-0.6.3/src/drivers/driver_wext.c.orig	2006-07-13 11:23:05.000000000 +0200
-+++ wpa_supplicant-0.6.3/src/drivers/driver_wext.c	2006-07-13 11:23:57.000000000 +0200
-@@ -1280,6 +1280,7 @@ static int wpa_driver_wext_set_key_ext(v
- 	memset(&iwr, 0, sizeof(iwr));
- 	strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
+diff -up wpa_supplicant-0.6.4/src/drivers/driver_wext.c.use-IW_ENCODE_TEMP wpa_supplicant-0.6.4/src/drivers/driver_wext.c
+--- wpa_supplicant-0.6.4/src/drivers/driver_wext.c.use-IW_ENCODE_TEMP	2008-08-10 13:33:12.000000000 -0400
++++ wpa_supplicant-0.6.4/src/drivers/driver_wext.c	2008-08-27 17:22:06.000000000 -0400
+@@ -1836,6 +1836,7 @@ static int wpa_driver_wext_set_key_ext(v
+ 	os_memset(&iwr, 0, sizeof(iwr));
+ 	os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
  	iwr.u.encoding.flags = key_idx + 1;
 +	iwr.u.encoding.flags |= IW_ENCODE_TEMP;
  	if (alg == WPA_ALG_NONE)
  		iwr.u.encoding.flags |= IW_ENCODE_DISABLED;
  	iwr.u.encoding.pointer = (caddr_t) ext;
-@@ -1401,6 +1402,7 @@ int wpa_driver_wext_set_key(void *priv, 
- 	memset(&iwr, 0, sizeof(iwr));
- 	strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
+@@ -1967,6 +1968,7 @@ int wpa_driver_wext_set_key(void *priv, 
+ 	os_memset(&iwr, 0, sizeof(iwr));
+ 	os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
  	iwr.u.encoding.flags = key_idx + 1;
 +	iwr.u.encoding.flags |= IW_ENCODE_TEMP;
  	if (alg == WPA_ALG_NONE)
  		iwr.u.encoding.flags |= IW_ENCODE_DISABLED;
  	iwr.u.encoding.pointer = (caddr_t) key;
-@@ -1415,6 +1417,7 @@ int wpa_driver_wext_set_key(void *priv, 
- 		memset(&iwr, 0, sizeof(iwr));
- 		strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
+@@ -1981,6 +1983,7 @@ int wpa_driver_wext_set_key(void *priv, 
+ 		os_memset(&iwr, 0, sizeof(iwr));
+ 		os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
  		iwr.u.encoding.flags = key_idx + 1;
 +		iwr.u.encoding.flags |= IW_ENCODE_TEMP;
  		iwr.u.encoding.pointer = (caddr_t) NULL;

wpa_supplicant-assoc-timeout.patch:

Index: wpa_supplicant-assoc-timeout.patch
===================================================================
RCS file: /cvs/extras/rpms/wpa_supplicant/F-9/wpa_supplicant-assoc-timeout.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- wpa_supplicant-assoc-timeout.patch	11 Jun 2008 11:15:37 -0000	1.3
+++ wpa_supplicant-assoc-timeout.patch	13 Oct 2008 16:08:42 -0000	1.4
@@ -1,14 +1,16 @@
---- wpa_supplicant-0.6.3/wpa_supplicant/wpa_supplicant.c.timeout	2006-03-03 22:26:13.000000000 -0500
-+++ wpa_supplicant-0.6.3/wpa_supplicant/wpa_supplicant.c	2006-03-03 22:26:45.000000000 -0500
-@@ -1252,9 +1252,9 @@
- 		/* Timeout for IEEE 802.11 authentication and association */
- 		int timeout;
- 		if (assoc_failed)
--			timeout = 5;
-+			timeout = 15;
- 		else if (wpa_s->conf->ap_scan == 1)
--			timeout = 10;
-+			timeout = 20;
- 		else
- 			timeout = 60;
+diff -up wpa_supplicant-0.6.4/wpa_supplicant/wpa_supplicant.c.assoc-timeout wpa_supplicant-0.6.4/wpa_supplicant/wpa_supplicant.c
+--- wpa_supplicant-0.6.4/wpa_supplicant/wpa_supplicant.c.assoc-timeout	2008-08-27 17:01:00.000000000 -0400
++++ wpa_supplicant-0.6.4/wpa_supplicant/wpa_supplicant.c	2008-08-27 17:01:22.000000000 -0400
+@@ -1094,10 +1094,10 @@ void wpa_supplicant_associate(struct wpa
+ 
+ 		if (assoc_failed) {
+ 			/* give IBSS a bit more time */
+- 			timeout = ssid->mode ? 10 : 5;
++ 			timeout = ssid->mode ? 20 : 10;
+ 		} else if (wpa_s->conf->ap_scan == 1) {
+ 			/* give IBSS a bit more time */
+- 			timeout = ssid->mode ? 20 : 10;
++ 			timeout = ssid->mode ? 20 : 20;
+ 		}
  		wpa_supplicant_req_auth_timeout(wpa_s, timeout, 0);
+ 	}


Index: wpa_supplicant.spec
===================================================================
RCS file: /cvs/extras/rpms/wpa_supplicant/F-9/wpa_supplicant.spec,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- wpa_supplicant.spec	11 Jun 2008 11:15:37 -0000	1.47
+++ wpa_supplicant.spec	13 Oct 2008 16:08:42 -0000	1.48
@@ -1,8 +1,8 @@
 Summary: WPA/WPA2/IEEE 802.1X Supplicant
 Name: wpa_supplicant
 Epoch: 1
-Version: 0.6.3
-Release: 6%{?dist}
+Version: 0.6.4
+Release: 2%{?dist}
 License: BSD
 Group: System Environment/Base
 Source0: http://hostap.epitest.fi/releases/%{name}-%{version}.tar.gz
@@ -14,15 +14,15 @@
 Source6: %{name}.logrotate
 
 Patch0: wpa_supplicant-assoc-timeout.patch
-Patch1: wpa_supplicant-0.6.3-wpa-gui-fixes.patch
-Patch2: wpa_supplicant-0.5.7-qmake-location.patch
-Patch3: wpa_supplicant-0.5.7-flush-debug-output.patch
-Patch4: wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch
-Patch5: wpa_supplicant-0.5.10-dbus-service-file.patch
-Patch6: wpa_supplicant-0.6.3-fix-dbus-use-after-free.patch
-Patch7: wpa_supplicant-0.6.3-wext-dont-overwrite-BSS-frequency.patch
-Patch8: wpa_supplicant-0.6.3-dont-reschedule-specific-scans.patch
-Patch9: wpa_supplicant-0.6.3-wext-handle-mac80211-mode-switches.patch
+Patch1: wpa_supplicant-0.5.7-qmake-location.patch
+Patch2: wpa_supplicant-0.5.7-flush-debug-output.patch
+Patch3: wpa_supplicant-0.5.7-use-IW_ENCODE_TEMP.patch
+Patch4: wpa_supplicant-0.5.10-dbus-service-file.patch
+Patch5: wpa_supplicant-0.6.4-handle-invalid-ies.patch
+Patch6: wpa_supplicant-0.6.4-scan-fixes-1.patch
+Patch7: wpa_supplicant-0.6.4-scan-fixes-2.patch
+Patch8: wpa_supplicant-0.6.4-validate-wext-event.patch
+Patch9: wpa_supplicant-0.6.4-set-mode-handler.patch
 
 URL: http://w1.fi/wpa_supplicant/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -51,15 +51,15 @@
 %prep
 %setup -q
 %patch0 -p1 -b .assoc-timeout
-%patch1 -p1 -b .wpa-gui-fixes
-%patch2 -p1 -b .qmake-location
-%patch3 -p1 -b .flush-debug-output
-%patch4 -p1 -b .use-IW_ENCODE_TEMP
-%patch5 -p1 -b .dbus-service-file
-%patch6 -p1 -b .use-after-free
-%patch7 -p1 -b .bss-freq
-%patch8 -p1 -b .ssid-scans
-%patch9 -p1 -b .mac80211-mode
+%patch1 -p1 -b .qmake-location
+%patch2 -p1 -b .flush-debug-output
+%patch3 -p1 -b .use-IW_ENCODE_TEMP
+%patch4 -p1 -b .dbus-service-file
+%patch5 -p1 -b .handle-invalid-ies
+%patch6 -p1 -b .scan-fixes-1
+%patch7 -p1 -b .scan-fixes-2
+%patch8 -p1 -b .validate-wext-event
+%patch9 -p1 -b .set-mode-handler
 
 %build
 pushd src
@@ -153,6 +153,15 @@
 %{_bindir}/wpa_gui
 
 %changelog
+* Mon Oct 15 2008 Dan Williams <dcbw at redhat.com> - 1:0.6.4-2
+- Handle encryption keys correctly when switching 802.11 modes (rh #459399)
+- Better scanning behavior on resume from suspend/hibernate
+- Better interaction with newer kernels and drivers
+
+* Wed Aug 27 2008 Dan Williams <dcbw at redhat.com> - 1:0.6.4-1
+- Update to 0.6.4
+- Drop upstreamed patches
+
 * Tue Jun 10 2008 Dan Williams <dcbw at redhat.com> - 1:0.6.3-6
 - Fix 802.11a frequency bug
 - Always schedule specific SSID scans to help find hidden APs


--- wpa_supplicant-0.6.3-dont-reschedule-specific-scans.patch DELETED ---


--- wpa_supplicant-0.6.3-fix-dbus-use-after-free.patch DELETED ---


--- wpa_supplicant-0.6.3-wext-dont-overwrite-BSS-frequency.patch DELETED ---


--- wpa_supplicant-0.6.3-wext-handle-mac80211-mode-switches.patch DELETED ---




More information about the scm-commits mailing list