services/mgmt/device/impl:  wait for suidhelper to exit

Correct an oversight in the launching of suidhelper: wait for the
helper to exit so that it does not become a zombie process.

Change-Id: Ib0c70315db955fd09499922174b7994129a0ce2f
diff --git a/services/mgmt/device/impl/app_service.go b/services/mgmt/device/impl/app_service.go
index 1de87ed..08f34f5 100644
--- a/services/mgmt/device/impl/app_service.go
+++ b/services/mgmt/device/impl/app_service.go
@@ -882,7 +882,12 @@
 		agentCleaner()
 	}
 
-	// Wait for the child process to start.
+	// Wait for the suidhelper to exit.
+	if err := handle.Wait(0); err != nil {
+		return 0, verror.New(ErrOperationFailed, ctx, fmt.Sprintf("Wait() on suidhelper failed: %v", err))
+	}
+
+	// Wait for the process invoked by suidhelper to become ready.
 	if err := handle.WaitForReady(childReadyTimeout); err != nil {
 		return 0, verror.New(ErrOperationFailed, ctx, fmt.Sprintf("WaitForReady(%v) failed: %v", childReadyTimeout, err))
 	}