- (stevesk) don't set SA_RESTART and set SIGCHLD to SIG_DFL

around grantpt().
This commit is contained in:
Kevin Steves 2001-06-15 00:04:23 +00:00
parent 7a83722577
commit 974fb9cf2f
3 changed files with 9 additions and 5 deletions

View File

@ -1,3 +1,7 @@
20010615
- (stevesk) don't set SA_RESTART and set SIGCHLD to SIG_DFL
around grantpt().
20010614
- OpenBSD CVS Sync
- markus@cvs.openbsd.org 2001/06/13 09:10:31
@ -5644,4 +5648,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
$Id: ChangeLog,v 1.1286 2001/06/13 19:23:32 mouring Exp $
$Id: ChangeLog,v 1.1287 2001/06/15 00:04:23 stevesk Exp $

4
misc.c
View File

@ -280,10 +280,6 @@ mysignal(int sig, mysig_t act)
memset(&sa, 0, sizeof(sa));
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
#if defined(SA_RESTART)
if (sig == SIGCHLD)
sa.sa_flags |= SA_RESTART;
#endif
#if defined(SA_INTERRUPT)
if (sig == SIGALRM)
sa.sa_flags |= SA_INTERRUPT;

View File

@ -20,6 +20,7 @@ RCSID("$OpenBSD: sshpty.c,v 1.1 2001/03/04 01:46:30 djm Exp $");
#include "sshpty.h"
#include "log.h"
#include "misc.h"
/* Pty allocated with _getpty gets broken if we do I_PUSH:es to it. */
#if defined(HAVE__GETPTY) || defined(HAVE_OPENPTY)
@ -93,16 +94,19 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, int namebuflen)
*/
int ptm;
char *pts;
mysig_t old_signal;
ptm = open("/dev/ptmx", O_RDWR | O_NOCTTY);
if (ptm < 0) {
error("/dev/ptmx: %.100s", strerror(errno));
return 0;
}
old_signal = mysignal(SIGCHLD, SIG_DFL);
if (grantpt(ptm) < 0) {
error("grantpt: %.100s", strerror(errno));
return 0;
}
mysignal(SIGCHLD, old_signal);
if (unlockpt(ptm) < 0) {
error("unlockpt: %.100s", strerror(errno));
return 0;