wifi: Zero length passphrase set to NULL
authorSamuel Ortiz <sameo@linux.intel.com>
Thu, 23 Dec 2010 15:05:37 +0000 (16:05 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 23 Dec 2010 15:05:37 +0000 (16:05 +0100)
Some UI give a non NULL but zero length passphrase string and wpa
supplicant doesn't handle that.

plugins/wifi.c

index 64322fd..aed0fdc 100644 (file)
@@ -554,15 +554,20 @@ static GSupplicantSecurity network_security(const char *security)
 
 static void ssid_init(GSupplicantSSID *ssid, struct connman_network *network)
 {
-       const char *security;
+       const char *security, *passphrase;
 
        memset(ssid, 0, sizeof(*ssid));
        ssid->ssid = connman_network_get_blob(network, "WiFi.SSID",
                                                &ssid->ssid_len);
        security = connman_network_get_string(network, "WiFi.Security");
        ssid->security = network_security(security);
-       ssid->passphrase = connman_network_get_string(network,
-                                                       "WiFi.Passphrase");
+       passphrase = connman_network_get_string(network,
+                                               "WiFi.Passphrase");
+       if (strlen(passphrase) == 0)
+               ssid->passphrase = NULL;
+        else
+               ssid->passphrase = passphrase;
+
        ssid->eap = connman_network_get_string(network, "WiFi.EAP");
 
        /*