summaryrefslogtreecommitdiff
path: root/src/machine
diff options
context:
space:
mode:
Diffstat (limited to 'src/machine')
-rw-r--r--src/machine/machinectl.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c
index a2af87c17d..ab9060ab99 100644
--- a/src/machine/machinectl.c
+++ b/src/machine/machinectl.c
@@ -451,6 +451,15 @@ static int openpt_in_namespace(pid_t pid, int flags) {
close_nointr_nofail(pair[1]);
pair[1] = -1;
+ r = wait_for_terminate(child, &si);
+ if (r < 0 || si.si_code != CLD_EXITED || si.si_status != EXIT_SUCCESS || master < 0) {
+
+ if (master >= 0)
+ close_nointr_nofail(master);
+
+ return r < 0 ? r : -EIO;
+ }
+
if (recvmsg(pair[0], &mh, MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) < 0)
return -errno;
@@ -470,15 +479,6 @@ static int openpt_in_namespace(pid_t pid, int flags) {
master = fds[0];
}
- r = wait_for_terminate(child, &si);
- if (r < 0 || si.si_code != CLD_EXITED || si.si_status != EXIT_SUCCESS || master < 0) {
-
- if (master >= 0)
- close_nointr_nofail(master);
-
- return r < 0 ? r : -EIO;
- }
-
return master;
}