Merge "services/mgmt/device/impl:  wait for suidhelper to exit"
diff --git a/services/mgmt/device/impl/app_service.go b/services/mgmt/device/impl/app_service.go
index dc19723..e399c93 100644
--- a/services/mgmt/device/impl/app_service.go
+++ b/services/mgmt/device/impl/app_service.go
@@ -884,7 +884,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))
 	}