=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sendbug/sendbug.c,v retrieving revision 1.43 retrieving revision 1.44 diff -c -r1.43 -r1.44 *** src/usr.bin/sendbug/sendbug.c 2007/04/25 04:56:14 1.43 --- src/usr.bin/sendbug/sendbug.c 2007/05/06 04:50:26 1.44 *************** *** 1,4 **** ! /* $OpenBSD: sendbug.c,v 1.43 2007/04/25 04:56:14 ray Exp $ */ /* * Written by Ray Lai . --- 1,4 ---- ! /* $OpenBSD: sendbug.c,v 1.44 2007/05/06 04:50:26 ray Exp $ */ /* * Written by Ray Lai . *************** *** 238,257 **** return (-1); argp[2] = p; - top: sighup = signal(SIGHUP, SIG_IGN); sigint = signal(SIGINT, SIG_IGN); sigquit = signal(SIGQUIT, SIG_IGN); if ((pid = fork()) == -1) { int saved_errno = errno; - (void)signal(SIGHUP, sighup); - (void)signal(SIGINT, sigint); - (void)signal(SIGQUIT, sigquit); if (saved_errno == EAGAIN) { sleep(1); goto top; } free(p); errno = saved_errno; return (-1); --- 238,257 ---- return (-1); argp[2] = p; sighup = signal(SIGHUP, SIG_IGN); sigint = signal(SIGINT, SIG_IGN); sigquit = signal(SIGQUIT, SIG_IGN); + top: if ((pid = fork()) == -1) { int saved_errno = errno; if (saved_errno == EAGAIN) { sleep(1); goto top; } + (void)signal(SIGHUP, sighup); + (void)signal(SIGINT, sigint); + (void)signal(SIGQUIT, sigquit); free(p); errno = saved_errno; return (-1);