From 7aee5e85160c025a6d3f0460f4482aadb985c0f3 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Sat, 19 Nov 2016 09:09:16 -0800 Subject: [PATCH] TetherController.cpp: add O_CLOEXEC Don't leak open file descriptors across execs to netd's children. This can occur in the unlikely but theoretically possible event that one thread is in writeToFile() and another thread happens to call exec(). Test: device boots with no obvious problems. Change-Id: Iabd8eee46bf94d70894ca46e58484ccb8241513a --- server/TetherController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/TetherController.cpp b/server/TetherController.cpp index 3cc46368..65c88ede 100644 --- a/server/TetherController.cpp +++ b/server/TetherController.cpp @@ -46,7 +46,7 @@ const char IPV6_FORWARDING_PROC_FILE[] = "/proc/sys/net/ipv6/conf/all/forwarding const char SEPARATOR[] = "|"; bool writeToFile(const char* filename, const char* value) { - int fd = open(filename, O_WRONLY); + int fd = open(filename, O_WRONLY | O_CLOEXEC); if (fd < 0) { ALOGE("Failed to open %s: %s", filename, strerror(errno)); return false;