SEGV in nm-applet 0.7
- From: Howard Chu <hyc highlandsun com>
- To: networkmanager-list gnome org
- Subject: SEGV in nm-applet 0.7
- Date: Mon, 25 Aug 2008 19:37:31 -0700
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"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]