Fix crash issue when sending DHCP_FAIL signal 46/311446/1
authorJaehyun Kim <jeik01.kim@samsung.com>
Fri, 17 May 2024 05:34:25 +0000 (14:34 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Fri, 17 May 2024 05:34:25 +0000 (14:34 +0900)
Change-Id: I8b0dfe83c9ed9d1d7b2fc118f88af5e99d77234b
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
gdhcp/client.c
src/network.c

index 905cecf..3e7c1f4 100755 (executable)
@@ -3388,10 +3388,15 @@ void g_dhcp_client_unref(GDHCPClient *dhcp_client)
        g_hash_table_destroy(dhcp_client->send_value_hash);
        g_hash_table_destroy(dhcp_client->secs_bcast_hash);
 
-       g_free(dhcp_client);
 #if defined TIZEN_EXT
-       dhcp_client = NULL;
+       dhcp_client->interface = NULL;
+       dhcp_client->assigned_ip = NULL;
+       dhcp_client->last_address = NULL;
+       dhcp_client->duid = NULL;
+       dhcp_client->server_duid = NULL;
 #endif
+
+       g_free(dhcp_client);
 }
 
 void g_dhcp_client_set_debug(GDHCPClient *dhcp_client,
index 6981699..46a4af9 100755 (executable)
@@ -2140,10 +2140,17 @@ dbus_bool_t __connman_network_notify_dhcp_changed(const char *key, const char *v
        DBusMessageIter iter;
        dbus_bool_t result = FALSE;
 
-       if (val)
-               DBG("key %s, val %s", key, val);
-       else
+       if (val) {
+               if (!g_utf8_validate(val, -1, NULL)) {
+                       DBG("key %s, invalid val", key);
+                       val = "";
+               } else {
+                       DBG("key %s, val %s", key, val);
+               }
+       } else {
                DBG("key %s, val NULL", key);
+               val = "";
+       }
 
        signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH,
                        CONNMAN_MANAGER_INTERFACE, "DhcpChanged");