Merge "adbd: properly close subprocess pipes on Ctrl+C."
am: 605628d325

* commit '605628d325b003251155b5c5b425028106bf8f29':
  adbd: properly close subprocess pipes on Ctrl+C.

Change-Id: I6eb8faa339a0a6506e21d5c74e5e9b8582e04735
diff --git a/adb/shell_service.cpp b/adb/shell_service.cpp
index e8dad58..b038fda 100644
--- a/adb/shell_service.cpp
+++ b/adb/shell_service.cpp
@@ -477,8 +477,14 @@
                 // and only fall back on this for unexpected closures.
                 D("protocol FD died, sending SIGHUP to pid %d", pid_);
                 kill(pid_, SIGHUP);
+
+                // We also need to close the pipes connected to the child process
+                // so that if it ignores SIGHUP and continues to write data it
+                // won't fill up the pipe and block.
+                stdinout_sfd_.clear();
+                stderr_sfd_.clear();
             }
-            dead_sfd->reset(-1);
+            dead_sfd->clear();
         }
     }
 }