diff options
| author | Elliott Hughes <enh@google.com> | 2016-02-19 18:13:02 -0800 |
|---|---|---|
| committer | Elliott Hughes <enh@google.com> | 2016-02-19 18:13:02 -0800 |
| commit | 123f1601dc4fb92e29a6c8ebb6d3885fcae343a8 (patch) | |
| tree | 171b8eb1bea1b18c8529e46593bee9c073ae39ac /debuggerd/debuggerd.cpp | |
| parent | 5cc580b436a89e8a5ac71d38ce34ae6a76fbdd4d (diff) | |
Clean up CLOEXEC in debuggerd.
Change-Id: I1cd75f6a8f98e99f4a4fedfc706103ce34035765
Diffstat (limited to 'debuggerd/debuggerd.cpp')
| -rw-r--r-- | debuggerd/debuggerd.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/debuggerd/debuggerd.cpp b/debuggerd/debuggerd.cpp index 294bda90b3..ac1c58c487 100644 --- a/debuggerd/debuggerd.cpp +++ b/debuggerd/debuggerd.cpp @@ -685,10 +685,9 @@ static int do_server() { act.sa_flags = SA_NOCLDWAIT; sigaction(SIGCHLD, &act, 0); - int s = socket_local_server(SOCKET_NAME, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM); - if (s < 0) - return 1; - fcntl(s, F_SETFD, FD_CLOEXEC); + int s = socket_local_server(SOCKET_NAME, ANDROID_SOCKET_NAMESPACE_ABSTRACT, + SOCK_STREAM | SOCK_CLOEXEC); + if (s == -1) return 1; ALOGI("debuggerd: starting\n"); @@ -698,14 +697,12 @@ static int do_server() { socklen_t alen = sizeof(ss); ALOGV("waiting for connection\n"); - int fd = accept(s, addrp, &alen); - if (fd < 0) { - ALOGV("accept failed: %s\n", strerror(errno)); + int fd = accept4(s, addrp, &alen, SOCK_CLOEXEC); + if (fd == -1) { + ALOGE("accept failed: %s\n", strerror(errno)); continue; } - fcntl(fd, F_SETFD, FD_CLOEXEC); - handle_request(fd); } return 0; |
