Fix thread-safety issue 08/318408/1 accepted/tizen_unified_toolchain accepted/tizen/9.0/unified/20241030.231858 accepted/tizen/unified/20241011.010700 accepted/tizen/unified/toolchain/20241022.122327 accepted/tizen/unified/toolchain/20241022.122817 accepted/tizen/unified/x/20241011.021823 accepted/tizen/unified/x/asan/20241013.235640 tizen_9.0_m2_release
authorSeonah Moon <seonah1.moon@samsung.com>
Tue, 27 Aug 2024 07:46:40 +0000 (16:46 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Fri, 27 Sep 2024 11:14:37 +0000 (20:14 +0900)
Change-Id: I8b23fb9836f1acbfc191fd3bdb85789dca9e5a35

src/dns-sd/dns-sd.c

index 8f40f2f40fa482d0804fe1fecc8188f2a8ce8560..b1922d8c6d0192ae137b7458c197eae5a383c3a4 100644 (file)
@@ -1350,7 +1350,7 @@ static int __dnssd_getaddrinfo(dnssd_handle_s *dnssd_handle, unsigned int flags,
                return DNSSD_ERROR_OPERATION_FAILED;
        }
 
-       if (!local_handle) {
+       if (!local_handle || __dnssd_check_handle_validity(local_handle) == false) {
                DNSSD_LOGE("Failed to get local_handle");
                return DNSSD_ERROR_OUT_OF_MEMORY;
        }
@@ -1404,6 +1404,12 @@ static void __dnssd_resolve_reply_cb(DNSServiceRef sd_ref, unsigned int flags,
                return;
        }
 
+       if (__dnssd_check_resolve_reply_data_validity(resolve_data) == NULL) {
+               DNSSD_LOGD("Invalid resolve_data[%p]", resolve_data);
+               DNSSD_UNLOCK;
+               return;
+       }
+
        /* Get Address Info details and send browse callback */
        __dnssd_getaddrinfo(resolve_data->dnssd_handle, flags, if_index,
                        host_name, resolve_data->service_name, fullname,