diff options
| -rw-r--r-- | cmds/servicemanager/binder.c | 2 | ||||
| -rw-r--r-- | libs/binder/ProcessState.cpp | 3 | ||||
| -rw-r--r-- | libs/binder/tests/binderDriverInterfaceTest.cpp | 2 |
3 files changed, 3 insertions, 4 deletions
diff --git a/cmds/servicemanager/binder.c b/cmds/servicemanager/binder.c index 6eecee1e63..3d14451b2f 100644 --- a/cmds/servicemanager/binder.c +++ b/cmds/servicemanager/binder.c @@ -104,7 +104,7 @@ struct binder_state *binder_open(size_t mapsize) return NULL; } - bs->fd = open("/dev/binder", O_RDWR); + bs->fd = open("/dev/binder", O_RDWR | O_CLOEXEC); if (bs->fd < 0) { fprintf(stderr,"binder: cannot open device (%s)\n", strerror(errno)); diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp index 821ab6cb9b..33fe26cfa9 100644 --- a/libs/binder/ProcessState.cpp +++ b/libs/binder/ProcessState.cpp @@ -310,9 +310,8 @@ void ProcessState::giveThreadPoolName() { static int open_driver() { - int fd = open("/dev/binder", O_RDWR); + int fd = open("/dev/binder", O_RDWR | O_CLOEXEC); if (fd >= 0) { - fcntl(fd, F_SETFD, FD_CLOEXEC); int vers = 0; status_t result = ioctl(fd, BINDER_VERSION, &vers); if (result == -1) { diff --git a/libs/binder/tests/binderDriverInterfaceTest.cpp b/libs/binder/tests/binderDriverInterfaceTest.cpp index 315f34956c..0277550258 100644 --- a/libs/binder/tests/binderDriverInterfaceTest.cpp +++ b/libs/binder/tests/binderDriverInterfaceTest.cpp @@ -34,7 +34,7 @@ class BinderDriverInterfaceTestEnv : public ::testing::Environment { int ret; uint32_t max_threads = 0; - m_binderFd = open(BINDER_DEV_NAME, O_RDWR | O_NONBLOCK); + m_binderFd = open(BINDER_DEV_NAME, O_RDWR | O_NONBLOCK | O_CLOEXEC); ASSERT_GE(m_binderFd, 0); m_buffer = mmap(NULL, 64*1024, PROT_READ, MAP_SHARED, m_binderFd, 0); ASSERT_NE(m_buffer, (void *)NULL); |