diff options
author | jiangpingping <jiangpingping@xiaomi.com> | 2023-11-15 14:11:44 +0800 |
---|---|---|
committer | jiangpingping <jiangpingping@xiaomi.com> | 2023-12-19 09:48:42 +0800 |
commit | d9983ee0cb340fac1ed0cec12e28b0ba1bee3745 (patch) | |
tree | c8df5ac46fccd24e2b267f30b69b70a6f913573b | |
parent | e7051b0be9815424b423d8034b15d3403884074a (diff) | |
download | mdnsresponder-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.c | 7 |
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; } |