aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangpingping <jiangpingping@xiaomi.com>2023-11-15 14:11:44 +0800
committerjiangpingping <jiangpingping@xiaomi.com>2023-12-19 09:48:42 +0800
commitd9983ee0cb340fac1ed0cec12e28b0ba1bee3745 (patch)
treec8df5ac46fccd24e2b267f30b69b70a6f913573b
parente7051b0be9815424b423d8034b15d3403884074a (diff)
downloadmdnsresponder-d9983ee0cb340fac1ed0cec12e28b0ba1bee3745.tar.gz
Fix a mdns coverity issue to avoid RESOURCE_LEAK
Bug: 312268760 [Description] sock not close before return if addr type is not ipv4 or ipv6. This will cause a RESOURCE_LEAK coverity issue. [Solution] close open socket before return Change-Id: I81dbb8663cd10169cbf106846eb1a0b4318ee050 Signed-off-by: jiangpingping <jiangpingping@xiaomi.com>
-rw-r--r--mDNSShared/PlatformCommon.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mDNSShared/PlatformCommon.c b/mDNSShared/PlatformCommon.c
index 2fb530e..607a7e7 100644
--- a/mDNSShared/PlatformCommon.c
+++ b/mDNSShared/PlatformCommon.c
@@ -66,7 +66,12 @@ mDNSexport void mDNSPlatformSourceAddrForDest(mDNSAddr *const src, const mDNSAdd
addr.a6.sin6_addr = *(struct in6_addr*)&dst->ip.v6;
addr.a6.sin6_scope_id = 0;
}
- else return;
+ else
+ {
+ // __ANDROID__ : Fix fd leak
+ goto exit;
+ }
+
if ((connect(sock, &addr.s, inner_len)) < 0)
{ LogMsg("mDNSPlatformSourceAddrForDest: connect %#a failed errno %d (%s)", dst, errno, strerror(errno)); goto exit; }