Move up waitpid error check so that errno isn't clobbered by tcsetpgrp.
diff --git a/hush.c b/hush.c
index 4a16a3f..a7316f8 100644
--- a/hush.c
+++ b/hush.c
@@ -1148,12 +1148,12 @@
}
}
+ if (childpid == -1 && errno != ECHILD)
+ perror_msg("waitpid");
+
/* move the shell to the foreground */
if (tcsetpgrp(0, getpgrp()) && errno != ENOTTY)
perror_msg("tcsetpgrp");
-
- if (childpid == -1 && errno != ECHILD)
- perror_msg("waitpid");
}
/* run_pipe_real() starts all the jobs, but doesn't wait for anything