Fix resource leak 27/263527/1 accepted/tizen/6.5/unified/20211028.100617 accepted/tizen/unified/20210906.123631 submit/tizen/20210906.043332 submit/tizen_6.5/20211028.161801 tizen_6.5.m2_release
authorCheoleun Moon <chleun.moon@samsung.com>
Mon, 6 Sep 2021 03:55:08 +0000 (12:55 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Mon, 6 Sep 2021 03:55:30 +0000 (12:55 +0900)
Change-Id: I40d6eafff53d385c66a76e0eab0269e3b1f7d6eb
Signed-off-by: Cheoleun Moon <chleun.moon@samsung.com>
packaging/capi-network-nsd.spec
src/dns-sd/dns-sd.c

index 9c5fe33662e841ca6b68f8fbb31fb7d1448e0d36..73737bfc4e8b354e1d8f415ca6d2a8e20c97a1ca 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-network-nsd
 Summary:    A Network Service Discovery libraries in Native API
-Version:    0.1.6
+Version:    0.1.7
 Release:    1
 Group:      System/Network
 License:    Apache-2.0
index 8a36be622291e559e01a8a9deb000ca533cde674..29a13db14e911f6e47b32838328a9e686a7f7b95 100644 (file)
@@ -1276,15 +1276,19 @@ static void __extract_domain_from_name(const char *fullname, char **domain)
 {
        char *name = NULL;
        char *save_str = NULL;
+       char *tmp = NULL;
 
        name = g_strdup(fullname);
        if (name == NULL)
                return;
 
-       *domain = strtok_r(name, ".", &save_str);
-       *domain = strtok_r(NULL, ".", &save_str);
-       *domain = strtok_r(NULL, ".", &save_str);
-       *domain = strtok_r(NULL, ".", &save_str);
+       tmp = strtok_r(name, ".", &save_str);
+       tmp = strtok_r(NULL, ".", &save_str);
+       tmp = strtok_r(NULL, ".", &save_str);
+       tmp = strtok_r(NULL, ".", &save_str);
+
+       *domain = g_strdup(tmp);
+       g_free(name);
 }
 
 static int __dnssd_getaddrinfo(dnssd_handle_s *dnssd_handle, unsigned int flags,
@@ -1310,6 +1314,7 @@ static int __dnssd_getaddrinfo(dnssd_handle_s *dnssd_handle, unsigned int flags,
                local_handle = __create_found_service(dnssd_handle, DNSSD_TYPE_FOUND,
                                flags, if_index, host_name, service_name, domain, port,
                                txt_record, txt_len);
+               g_free(domain);
        } else if (dnssd_handle->op_type == DNSSD_TYPE_FOUND_NOT_RESOLVED) {
                local_handle = dnssd_handle;
                dnssd_found_data_s *found = GET_FOUND_DATA_P(local_handle);