diff options
| author | Andreas Gampe <agampe@google.com> | 2018-10-16 20:22:37 -0700 |
|---|---|---|
| committer | Andreas Gampe <agampe@google.com> | 2018-10-19 13:06:33 -0700 |
| commit | dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e (patch) | |
| tree | d9bfd3e043a95b3c8e302769cef23c13a89df3c5 /dt_fd_forward | |
| parent | 4f570a43146c1456071f2ffe6590ab96e723051a (diff) | |
| download | art-dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e.tar.gz art-dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e.tar.bz2 art-dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e.zip | |
ART: Fix android-cloexec warnings
Use the DupCloexec helper wherever possible. Add O_CLOEXEC to open
and fopen calls.
Bug: 32619234
Test: WITH_TIDY=1 mmma art
Change-Id: I0afb1beea53ab8f68ab85d1762aff999903060fe
Diffstat (limited to 'dt_fd_forward')
| -rw-r--r-- | dt_fd_forward/dt_fd_forward.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/dt_fd_forward/dt_fd_forward.cc b/dt_fd_forward/dt_fd_forward.cc index 116cdf84ed..a99f7850c0 100644 --- a/dt_fd_forward/dt_fd_forward.cc +++ b/dt_fd_forward/dt_fd_forward.cc @@ -105,12 +105,21 @@ static void SendListenMessage(const android::base::unique_fd& fd) { TEMP_FAILURE_RETRY(send(fd, kListenStartMessage, sizeof(kListenStartMessage), MSG_EOR)); } +// Copy from file_utils, so we do not need to depend on libartbase. +static int DupCloexec(int fd) { +#if defined(__linux__) + return fcntl(fd, F_DUPFD_CLOEXEC, 0); +#else + return dup(fd); +#endif +} + jdwpTransportError FdForwardTransport::SetupListen(int listen_fd) { std::lock_guard<std::mutex> lk(state_mutex_); if (!ChangeState(TransportState::kClosed, TransportState::kListenSetup)) { return ERR(ILLEGAL_STATE); } else { - listen_fd_.reset(dup(listen_fd)); + listen_fd_.reset(DupCloexec(listen_fd)); SendListenMessage(listen_fd_); CHECK(ChangeState(TransportState::kListenSetup, TransportState::kListening)); return OK; @@ -339,7 +348,7 @@ IOResult FdForwardTransport::ReceiveFdsFromSocket(bool* do_handshake) { write_lock_fd_.reset(out_fds.write_lock_fd_); // We got the fds. Send ack. - close_notify_fd_.reset(dup(listen_fd_)); + close_notify_fd_.reset(DupCloexec(listen_fd_)); SendAcceptMessage(close_notify_fd_); return IOResult::kOk; |
