=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tput/tput.c,v retrieving revision 1.22 retrieving revision 1.23 diff -c -r1.22 -r1.23 *** src/usr.bin/tput/tput.c 2015/11/16 03:03:28 1.22 --- src/usr.bin/tput/tput.c 2017/08/21 21:41:13 1.23 *************** *** 1,4 **** ! /* $OpenBSD: tput.c,v 1.22 2015/11/16 03:03:28 deraadt Exp $ */ /* * Copyright (c) 1999 Todd C. Miller --- 1,4 ---- ! /* $OpenBSD: tput.c,v 1.23 2017/08/21 21:41:13 deraadt Exp $ */ /* * Copyright (c) 1999 Todd C. Miller *************** *** 52,57 **** --- 52,58 ---- #include #include #include + #include #include #include *************** *** 269,277 **** size_t len; char *buf; int wstatus; if (init_prog && !issetugid()) { ! switch (vfork()) { case -1: err(4, "vfork"); break; --- 270,279 ---- size_t len; char *buf; int wstatus; + pid_t pid; if (init_prog && !issetugid()) { ! switch (pid = vfork()) { case -1: err(4, "vfork"); break; *************** *** 281,287 **** _exit(127); break; default: ! wait(&wstatus); /* parent */ break; } --- 283,292 ---- _exit(127); break; default: ! while (waitpid(pid, &wstatus, 0) == -1) { ! if (errno != EINTR) ! break; ! } /* parent */ break; }