summaryrefslogtreecommitdiffstats
path: root/clatd.c
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2019-04-09 01:58:52 -0700
committerMaciej Zenczykowski <maze@google.com>2019-05-02 00:49:02 +0000
commit35d9175db948861be168f20bf72f928802b85fe1 (patch)
treed326aaffc6a78cbff16b31e55deab37a1caf57ca /clatd.c
parent9c613ba2bdb1dd029d7eea8475fa47cb9e759a54 (diff)
downloadplatform_external_android-clat-35d9175db948861be168f20bf72f928802b85fe1.tar.gz
platform_external_android-clat-35d9175db948861be168f20bf72f928802b85fe1.tar.bz2
platform_external_android-clat-35d9175db948861be168f20bf72f928802b85fe1.zip
Fix some clatd cloexec and file descriptor leaking via missing close()
Not terribly important since clatd doesn't exec anything, but was muddying the waters while I was searching for other fd-survives-across-exec leakage in netd. While at it also fix another leaked fd which we forgot to close(). Test: builds and boots Bug: 131268436 Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: Iceb7d4052dc9be29db5c7bb3fe2ee27da7864379 Merged-In: Iceb7d4052dc9be29db5c7bb3fe2ee27da7864379 (cherry picked from commit 60bce378cfa29463f57756fc724d1572747f4fc5)
Diffstat (limited to 'clatd.c')
-rw-r--r--clatd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/clatd.c b/clatd.c
index 94a0f06..06ca799 100644
--- a/clatd.c
+++ b/clatd.c
@@ -231,7 +231,7 @@ void drop_root_but_keep_caps() {
* mark - the socket mark to use for the sending raw socket
*/
void open_sockets(struct tun_data *tunnel, uint32_t mark) {
- int rawsock = socket(AF_INET6, SOCK_RAW | SOCK_NONBLOCK, IPPROTO_RAW);
+ int rawsock = socket(AF_INET6, SOCK_RAW | SOCK_NONBLOCK | SOCK_CLOEXEC, IPPROTO_RAW);
if (rawsock < 0) {
logmsg(ANDROID_LOG_FATAL, "raw socket failed: %s", strerror(errno));
exit(1);