diff options
Diffstat (limited to 'login-utils/ttymsg.c')
-rw-r--r-- | login-utils/ttymsg.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/login-utils/ttymsg.c b/login-utils/ttymsg.c index 55b26a82a..0dbe58113 100644 --- a/login-utils/ttymsg.c +++ b/login-utils/ttymsg.c @@ -127,7 +127,7 @@ ttymsg(struct iovec *iov, int iovcnt, char *line, int tmout) { continue; } if (errno == EWOULDBLOCK) { - int cpid, off = 0; + int cpid, flags; if (forked) { (void) close(fd); @@ -155,7 +155,8 @@ ttymsg(struct iovec *iov, int iovcnt, char *line, int tmout) { (void) signal(SIGTERM, SIG_DFL); /* XXX */ (void) sigsetmask(0); (void) alarm((u_int)tmout); - (void) fcntl(fd, O_NONBLOCK, &off); + flags = fcntl(fd, F_GETFL); + fcntl(flags, F_SETFL, (long) (flags & ~O_NONBLOCK)); continue; } /* |