summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/usr.bin/nc/netcat.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index ce7fde4525..88a2a25053 100644
--- a/src/usr.bin/nc/netcat.c
+++ b/src/usr.bin/nc/netcat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: netcat.c,v 1.127 2015/02/14 22:40:22 jca Exp $ */ 1/* $OpenBSD: netcat.c,v 1.128 2015/03/26 10:36:03 tobias Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> 3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 * 4 *
@@ -980,7 +980,6 @@ fdpass(int nfd)
980 bzero(&mh, sizeof(mh)); 980 bzero(&mh, sizeof(mh));
981 bzero(&cmsgbuf, sizeof(cmsgbuf)); 981 bzero(&cmsgbuf, sizeof(cmsgbuf));
982 bzero(&iov, sizeof(iov)); 982 bzero(&iov, sizeof(iov));
983 bzero(&pfd, sizeof(pfd));
984 983
985 mh.msg_control = (caddr_t)&cmsgbuf.buf; 984 mh.msg_control = (caddr_t)&cmsgbuf.buf;
986 mh.msg_controllen = sizeof(cmsgbuf.buf); 985 mh.msg_controllen = sizeof(cmsgbuf.buf);
@@ -997,17 +996,17 @@ fdpass(int nfd)
997 996
998 bzero(&pfd, sizeof(pfd)); 997 bzero(&pfd, sizeof(pfd));
999 pfd.fd = STDOUT_FILENO; 998 pfd.fd = STDOUT_FILENO;
999 pfd.events = POLLOUT;
1000 for (;;) { 1000 for (;;) {
1001 r = sendmsg(STDOUT_FILENO, &mh, 0); 1001 r = sendmsg(STDOUT_FILENO, &mh, 0);
1002 if (r == -1) { 1002 if (r == -1) {
1003 if (errno == EAGAIN || errno == EINTR) { 1003 if (errno == EAGAIN || errno == EINTR) {
1004 pfd.events = POLLOUT;
1005 if (poll(&pfd, 1, -1) == -1) 1004 if (poll(&pfd, 1, -1) == -1)
1006 err(1, "poll"); 1005 err(1, "poll");
1007 continue; 1006 continue;
1008 } 1007 }
1009 err(1, "sendmsg"); 1008 err(1, "sendmsg");
1010 } else if (r == -1) 1009 } else if (r != 1)
1011 errx(1, "sendmsg: unexpected return value %zd", r); 1010 errx(1, "sendmsg: unexpected return value %zd", r);
1012 else 1011 else
1013 break; 1012 break;