summaryrefslogtreecommitdiff
path: root/adb/fdevent.cpp
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2016-01-19 16:21:17 -0800
committerJosh Gao <jmgao@google.com>2016-01-20 11:40:31 -0800
commitc65fae9ef56163d17bcc86b6b6324be2b56b4aa5 (patch)
tree95483013957efc6da3241d8f84c973778b56e19a /adb/fdevent.cpp
parentd0009911de67f0625df8175bd298fa3863c1879d (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.cpp4
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;
}