Always get supplicant interface path using 'GetInterface' method.
[platform/core/connectivity/net-config.git] / src / wifi-indicator.c
index cb138f2..1c99a18 100755 (executable)
@@ -66,7 +66,7 @@ int netconfig_wifi_get_rssi(void)
 
 static int __netconfig_wifi_update_and_get_rssi(void)
 {
-       const char *if_path = NULL;
+       char *if_path = NULL;
        GVariant *message = NULL;
        GVariant *value = NULL;
        gchar *key;
@@ -83,6 +83,8 @@ static int __netconfig_wifi_update_and_get_rssi(void)
 
        message = netconfig_invoke_dbus_method(SUPPLICANT_SERVICE, if_path,
                                SUPPLICANT_INTERFACE ".Interface", "SignalPoll", NULL);
+
+       g_free(if_path);
        if (message == NULL) {
                ERR("Fail to get SignalPoll from wpa_supplicant");
                return 0;
@@ -91,6 +93,11 @@ static int __netconfig_wifi_update_and_get_rssi(void)
        g_variant_get(message, "(v)", &value);
 
        g_variant_get(value, "a{sv}", &iter);
+       if (iter == NULL) {
+               ERR("Fail to get list from SignalPoll");
+               return 0;
+       }
+
        while (g_variant_iter_loop(iter, "{sv}", &key, &variant)) {
                key_value = g_variant_get_int32(variant);