diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index 9b022313bd..c78c983321 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -167,6 +167,7 @@ create_connection (NMDevice *device, NMAccessPoint *ap) setting = nm_setting_wired_new (); } else if (NM_IS_DEVICE_802_11_WIRELESS (device) && ap) { NMSettingWireless *wireless; + const char *ssid; nm_info ("Will activate connection '%s/%s'.", nm_device_get_iface (device), @@ -175,8 +176,11 @@ create_connection (NMDevice *device, NMAccessPoint *ap) setting = nm_setting_wireless_new (); wireless = (NMSettingWireless *) setting; - wireless->ssid = g_strdup (nm_ap_get_essid (ap)); - wireless->mode = 1; + ssid = nm_ap_get_essid (ap); + wireless->ssid = g_byte_array_sized_new (strlen (ssid)); + g_byte_array_append (wireless->ssid, (guint8 *) ssid, strlen (ssid)); + + wireless->mode = g_strdup ("infrastructure"); } else nm_warning ("Unhandled device type '%s'", G_OBJECT_CLASS_NAME (device)); diff --git a/src/nm-dbus-nmi.c b/src/nm-dbus-nmi.c index 60c4ff5236..a1b3087490 100644 --- a/src/nm-dbus-nmi.c +++ b/src/nm-dbus-nmi.c @@ -203,7 +203,7 @@ nm_dbus_get_user_key_for_network (NMDevice *dev, pcall = nm_dbus_send_with_callback (dbus_connection, message, (DBusPendingCallNotifyFunction) nm_dbus_get_user_key_for_network_cb, - req, + info, user_key_info_destroy, __func__); if (pcall) diff --git a/src/nm-device-802-11-wireless.c b/src/nm-device-802-11-wireless.c index 6bd84204db..a7dd82aff1 100644 --- a/src/nm-device-802-11-wireless.c +++ b/src/nm-device-802-11-wireless.c @@ -951,7 +951,11 @@ nm_device_802_11_wireless_set_activation_ap (NMDevice80211Wireless *self, g_assert (app_data); /* FIXME: handle essid everywhere as GByteArray */ - essid = (char *) ssid->data; + { + essid = g_new (char, ssid->len + 1); + memcpy (essid, ssid->data, ssid->len); + essid[ssid->len] = '\0'; + } nm_debug ("Forcing AP '%s'", essid); @@ -997,6 +1001,9 @@ nm_device_802_11_wireless_set_activation_ap (NMDevice80211Wireless *self, security = nm_ap_security_new (nm_ap_get_capabilities (ap), nm_ap_get_encrypted (ap)); } + + g_free (essid); + g_assert (security); nm_ap_set_security (ap, security); nm_ap_add_capabilities_from_security (ap, security);