Fix resource leak 11/279911/1
authorAnjali Nijhara <a.nijhara@samsung.com>
Thu, 18 Aug 2022 05:51:24 +0000 (11:21 +0530)
committerAnjali Nijhara <a.nijhara@samsung.com>
Thu, 18 Aug 2022 05:51:24 +0000 (11:21 +0530)
Change-Id: I550b172c7815c90266cf825510263af4dd902207

packaging/capi-network-nsd.spec
src/dns-sd/dns-sd.c

index e38855d41cb7b57ddc61351082a315862cf04190..3903c489addaf9b6684e2fc3b4a85c87fa9412a9 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:    2
 Group:      System/Network
 License:    Apache-2.0
index 9fec026975c6daee5f1bd4a25bfa215a775664ee..f8ca81e759b86abc79dddf2e4406fde82adf6caa 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);