Reported-by: Maks Naumov (https://github.com/karelzak/util-linux/pull/205)
Signed-off-by: Karel Zak <kzak@redhat.com>
default: /* parent */
do {
- if ((ret = waitpid(pid, &status, 0)) < 0
- && errno == EINTR)
- continue;
- else if (ret < 0) {
- warn(_("waitpid failed"));
- return -1;
- }
- } while (0);
+ ret = waitpid(pid, &status, 0);
+ } while (ret == -1 && errno == EINTR);
+
+ if (ret < 0) {
+ warn(_("waitpid failed"));
+ return -1;
+ }
/* mkswap returns: 0=suss, 1=error */
if (WIFEXITED(status) && WEXITSTATUS(status)==0)