From d6b2d452ada3e764038f5e5808ef166a54cc7b18 Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Tue, 27 Aug 2024 16:46:40 +0900 Subject: [PATCH] Fix thread-safety issue Change-Id: I8b23fb9836f1acbfc191fd3bdb85789dca9e5a35 --- packaging/capi-network-nsd.spec | 2 +- src/dns-sd/dns-sd.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packaging/capi-network-nsd.spec b/packaging/capi-network-nsd.spec index c2ed239..ebd1d58 100644 --- a/packaging/capi-network-nsd.spec +++ b/packaging/capi-network-nsd.spec @@ -1,6 +1,6 @@ Name: capi-network-nsd Summary: A Network Service Discovery libraries in Native API -Version: 0.2.2 +Version: 0.2.3 Release: 1 Group: System/Network License: Apache-2.0 diff --git a/src/dns-sd/dns-sd.c b/src/dns-sd/dns-sd.c index 8f40f2f..b1922d8 100644 --- a/src/dns-sd/dns-sd.c +++ b/src/dns-sd/dns-sd.c @@ -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, -- 2.34.1