From: Cheoleun Moon Date: Thu, 21 Mar 2019 01:01:03 +0000 (+0900) Subject: [ASAN] Fix heap-use-after-free X-Git-Tag: submit/tizen/20190325.013255~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F05%2F201905%2F2;p=platform%2Fcore%2Fapi%2Fnsd.git [ASAN] Fix heap-use-after-free DNSServiceRef of a registered service is freed but not assigned to NULL. It leads to read the DNSServiceRef value in the next call. Change-Id: I3e9f6e31c89ddb26c8ef09268a5fcdcc464837e9 Signed-off-by: Cheoleun Moon --- diff --git a/packaging/capi-network-nsd.spec b/packaging/capi-network-nsd.spec index 4b16295..605a786 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.0.23 +Version: 0.0.24 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 c5d6eea..8f74d4a 100644 --- a/src/dns-sd/dns-sd.c +++ b/src/dns-sd/dns-sd.c @@ -959,11 +959,13 @@ int dnssd_deregister_local_service(dnssd_service_h local_service) reg->record_ref = NULL; //LCOV_EXCL_LINE } - if (local_handle->watch_id > 0) + if (local_handle->watch_id > 0) { g_source_remove(local_handle->watch_id); + local_handle->watch_id = 0; + } DNSServiceRefDeallocate(sd_ref); - sd_ref = NULL; + local_handle->sd_ref = NULL; __DNSSD_LOG_FUNC_EXIT__; return DNSSD_ERROR_NONE;