mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-21 05:44:30 -05:00
29 lines
1.1 KiB
Diff
29 lines
1.1 KiB
Diff
|
From 7aee5e85160c025a6d3f0460f4482aadb985c0f3 Mon Sep 17 00:00:00 2001
|
||
|
From: Nick Kralevich <nnk@google.com>
|
||
|
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;
|