Fix bugs 26/127126/3 accepted/tizen/unified/20170428.032834 submit/tizen/20170427.090631 tizen_4.0.m1_release
authorchleun.moon <chleun.moon@samsung.com>
Wed, 26 Apr 2017 08:12:59 +0000 (17:12 +0900)
committerchleun.moon <chleun.moon@samsung.com>
Wed, 26 Apr 2017 08:22:45 +0000 (17:22 +0900)
dns-sd: invalid memory access
ssdp: remove found services as stopping browsing

Change-Id: I7a14b665f51a15bf39d66ac6756461499656caa2
Signed-off-by: cheoleun <chleun.moon@samsung.com>
src/dns-sd/dns-sd.c
src/ssdp/ssdp.c

index 0b3f12c5f6394dfa24ffaec9a087a53ff43001cc..123b3abf5283a9cae4e7a6e26c68a639b4327e1c 100644 (file)
@@ -1047,7 +1047,7 @@ static int __dnssd_getaddrinfo(dnssd_handle_s *dnssd_handle, unsigned int flags,
        found->service_name = g_strdup(name);
        g_free(name);
        if (txt_record != NULL) {
-               found->txt_record = g_strdup(txt_record);
+               found->txt_record = g_strndup(txt_record, txt_len);
                found->txt_len = txt_len;
        }
        found->host = g_strdup(host_name);
index 89980e40734d34abd11e0239f0d1b750fac811d8..0a47d82da8badd15745be829adf70736292aed63 100644 (file)
@@ -151,7 +151,7 @@ static void __g_hash_remove_related_services(gpointer key, gpointer value,
                                                        gpointer user_data)
 {
        ssdp_service_s *service = NULL;
-       int browse_id = *((unsigned int *)user_data);
+       unsigned int browse_id = (uintptr_t)user_data;
 
        service = (ssdp_service_s *)value;
        if (service == NULL)
@@ -162,6 +162,7 @@ static void __g_hash_remove_related_services(gpointer key, gpointer value,
 
        SSDP_LOGD("Free found service");
 
+       g_hash_table_remove(g_found_ssdp_services, service->usn);
        g_free(service->target);
        g_free(service->usn);
        g_free(service->url);
@@ -919,7 +920,6 @@ GLIST_ITER_END()
 
                /* Create browser handle */
                *ssdp_browser = (uintptr_t)browser & 0xFFFFFFFF;
-               SSDP_LOGD("Create handler for browser [%u]", *ssdp_browser);
                browser->service_handler = *ssdp_browser;
 
                /* Create the service browser */