* system-settings/plugins/ifupdown/parser.c
        - (update_wireless_setting_from_if_block): fix ifupdown
                crash for wireless-ssid setting (debbugs: #513852)


Signed-off-by: Alexander Sack <[email protected]>
---
 ChangeLog                                 |    6 ++++++
 system-settings/plugins/ifupdown/parser.c |   13 ++++++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d529664..0e03d80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-03  Alexander Sack  <[email protected]>
+
+       * system-settings/plugins/ifupdown/parser.c
+               - (update_wireless_setting_from_if_block): fix ifupdown
+                       crash for wireless-ssid setting (debbugs: #513852)
+
 2008-12-11  Dan Williams  <[email protected]>
 
        * Move NetworkManager to git.freedesktop.org
diff --git a/system-settings/plugins/ifupdown/parser.c 
b/system-settings/plugins/ifupdown/parser.c
index 400e2a1..25e866a 100644
--- a/system-settings/plugins/ifupdown/parser.c
+++ b/system-settings/plugins/ifupdown/parser.c
@@ -153,9 +153,20 @@ update_wireless_setting_from_if_block(NMConnection 
*connection,
                        const gchar* newkey = map_by_mapping(mapping, 
curr->key+wireless_l);
                        PLUGIN_PRINT ("SCPlugin-Ifupdown", "wireless setting 
key: %s='%s'",
                                            newkey, curr->data);
-                       g_object_set(wireless_setting,
+                       if(newkey && !strcmp("ssid", newkey)) {
+                               GByteArray *ssid;
+                               gint len = strlen(curr->data);
+
+                               ssid = g_byte_array_sized_new (len);
+                               g_byte_array_append (ssid, (const guint8 *) 
curr->data, len);
+                               g_object_set (wireless_setting, 
NM_SETTING_WIRELESS_SSID, ssid, NULL);
+                               g_byte_array_free (ssid, TRUE);
+                               PLUGIN_PRINT("SCPlugin-Ifupdown", "setting 
wireless ssid = %d", len);
+                       } else {
+                               g_object_set(wireless_setting,
                                           newkey, curr->data,
                                           NULL);
+                       }
                } else if(strlen(curr->key) > wpa_l &&
                                !strncmp("wpa-", curr->key, wpa_l)) {
                        const gchar* newkey = map_by_mapping(mapping, 
curr->key+wpa_l);
-- 
1.6.0.4

_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to