[SPIN] Add NULL check to prevent crash.
[platform/upstream/connman.git] / src / service.c
index adbb1bc..11a510d 100755 (executable)
@@ -680,6 +680,8 @@ static int service_load(struct connman_service *service)
 
                                connman_network_set_blob(service->network,
                                        "WiFi.SSID", ssid, hex_ssid_len / 2);
+
+                               g_free(ssid);
                        }
 
                        g_free(hex_ssid);
@@ -5142,6 +5144,10 @@ static void service_schedule_removed(struct connman_service *service)
 
 static bool allow_property_changed(struct connman_service *service)
 {
+#if defined TIZEN_EXT
+       if (service->path == NULL)
+               return FALSE;
+#endif
        if (g_hash_table_lookup_extended(services_notify->add, service->path,
                                        NULL, NULL)) {
                DBG("no property updates for service %p", service);
@@ -6230,6 +6236,11 @@ static void single_connected_tech(struct connman_service *allowed)
 
        DBG("keeping %p %s", allowed, allowed->path);
 
+#if defined TIZEN_EXT
+       if (!allowed || allowed->type == CONNMAN_SERVICE_TYPE_CELLULAR)
+               return;
+#endif
+
        for (iter = service_list; iter; iter = iter->next) {
                service = iter->data;
 
@@ -6839,6 +6850,19 @@ int __connman_service_ipconfig_indicate_state(struct connman_service *service,
                        is_connected_state(service, new_state))
                nameserver_add_all(service);
 
+#if defined TIZEN_EXT
+       int ret = service_indicate_state(service);
+       /*Sent the Ready changed signal again in case IPv4 IP set
+         after IPv6 IP set*/
+
+       if(ret == -EALREADY && type == CONNMAN_IPCONFIG_TYPE_IPV4
+                       && new_state == CONNMAN_SERVICE_STATE_READY) {
+               DBG("Notify IPv4 state new/old %d/%d", new_state,old_state);
+               state_changed(service);
+       }
+
+       return ret;
+#endif
        return service_indicate_state(service);
 }