adbd: don't leave zombies when subprocess creation fails.

Bug: http://b/26660675
Change-Id: I8e65d51af73f409c30be47575f76bc6b0f227c54
diff --git a/adb/shell_service.cpp b/adb/shell_service.cpp
index 366ed07..95dff11 100644
--- a/adb/shell_service.cpp
+++ b/adb/shell_service.cpp
@@ -233,6 +233,7 @@
 }
 
 Subprocess::~Subprocess() {
+    WaitForExit();
 }
 
 bool Subprocess::ForkAndExec() {
@@ -432,7 +433,6 @@
             "shell srvc %d", subprocess->local_socket_fd()));
 
     subprocess->PassDataStreams();
-    subprocess->WaitForExit();
 
     D("deleting Subprocess for PID %d", subprocess->pid());
     delete subprocess;