diff options
| author | Josh Gao <jmgao@google.com> | 2016-01-19 16:21:17 -0800 |
|---|---|---|
| committer | Josh Gao <jmgao@google.com> | 2016-01-20 11:40:31 -0800 |
| commit | c65fae9ef56163d17bcc86b6b6324be2b56b4aa5 (patch) | |
| tree | 95483013957efc6da3241d8f84c973778b56e19a /adb/fdevent.cpp | |
| parent | d0009911de67f0625df8175bd298fa3863c1879d (diff) | |
adbd: don't leave zombies when subprocess creation fails.
Bug: http://b/26660675
Change-Id: I8e65d51af73f409c30be47575f76bc6b0f227c54
Diffstat (limited to 'adb/fdevent.cpp')
| -rw-r--r-- | adb/fdevent.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/adb/fdevent.cpp b/adb/fdevent.cpp index 25e8376a0b..386f221865 100644 --- a/adb/fdevent.cpp +++ b/adb/fdevent.cpp @@ -306,12 +306,14 @@ static void fdevent_subproc_event_func(int fd, unsigned ev, auto it = g_poll_node_map.find(subproc_fd); if (it == g_poll_node_map.end()) { D("subproc_fd %d cleared from fd_table", subproc_fd); + adb_close(subproc_fd); return; } fdevent* subproc_fde = it->second.fde; if(subproc_fde->fd != subproc_fd) { // Already reallocated? - D("subproc_fd(%d) != subproc_fde->fd(%d)", subproc_fd, subproc_fde->fd); + LOG(FATAL) << "subproc_fd(" << subproc_fd << ") != subproc_fde->fd(" << subproc_fde->fd + << ")"; return; } |
