Today I upgraded my new laptop from Ubuntu 8.04 to 8.10alpha4 to try out the
new NetworkManager stuff. Unfortunately it SEGV'd whenever trying to connect
to my WPA network.
I traced it to this function, which was being called (at least) twice for the
same connection, and re-using freed pointers the second time around.
A better fix would just eliminate the redundant call. (Why is it being called
multiple times in the first place?)
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Index: src/wireless-security/wireless-security.c
===================================================================
--- src/wireless-security/wireless-security.c (revision 865)
+++ src/wireless-security/wireless-security.c (working copy)
@@ -176,18 +176,21 @@
// FIXME: allow protocol selection and filter on device capabilities
g_slist_foreach (s_wireless_sec->proto, (GFunc) g_free, NULL);
g_slist_free (s_wireless_sec->proto);
+ s_wireless_sec->proto = NULL;
s_wireless_sec->proto = g_slist_append (s_wireless_sec->proto, g_strdup
("wpa"));
s_wireless_sec->proto = g_slist_append (s_wireless_sec->proto, g_strdup
("rsn"));
// FIXME: allow pairwise cipher selection and filter on device
capabilities
g_slist_foreach (s_wireless_sec->pairwise, (GFunc) g_free, NULL);
g_slist_free (s_wireless_sec->pairwise);
+ s_wireless_sec->pairwise = NULL;
s_wireless_sec->pairwise = g_slist_append (s_wireless_sec->pairwise,
g_strdup ("tkip"));
s_wireless_sec->pairwise = g_slist_append (s_wireless_sec->pairwise,
g_strdup ("ccmp"));
// FIXME: allow group cipher selection and filter on device capabilities
g_slist_foreach (s_wireless_sec->group, (GFunc) g_free, NULL);
g_slist_free (s_wireless_sec->group);
+ s_wireless_sec->group = NULL;
s_wireless_sec->group = g_slist_append (s_wireless_sec->group, g_strdup
("wep40"));
s_wireless_sec->group = g_slist_append (s_wireless_sec->group, g_strdup
("wep104"));
s_wireless_sec->group = g_slist_append (s_wireless_sec->group, g_strdup
("tkip"));
_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list