summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormillert <>2014-10-26 13:59:30 +0000
committermillert <>2014-10-26 13:59:30 +0000
commit77608e1e83f23ad41247b5fe52616f87439bb30f (patch)
tree11436030293500a075e39850129bf5302ff2c888
parent0f7ca1f1c7fb8a8c82864d35d1ebe0681fbb1b99 (diff)
downloadopenbsd-77608e1e83f23ad41247b5fe52616f87439bb30f.tar.gz
openbsd-77608e1e83f23ad41247b5fe52616f87439bb30f.tar.bz2
openbsd-77608e1e83f23ad41247b5fe52616f87439bb30f.zip
POLLIN is not guaranteed to be set in revents for EOF so check for
POLLHUP too. OK deraadt@
-rw-r--r--src/usr.bin/nc/netcat.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index 81cbe43430..e6ec97ed0f 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.123 2014/10/24 02:01:20 lteo Exp $ */ 1/* $OpenBSD: netcat.c,v 1.124 2014/10/26 13:59:30 millert Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> 3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 * 4 *
@@ -760,7 +760,7 @@ readwrite(int nfd)
760 if (n == 0) 760 if (n == 0)
761 return; 761 return;
762 762
763 if (pfd[0].revents & POLLIN) { 763 if (pfd[0].revents & (POLLIN|POLLHUP)) {
764 if ((n = read(nfd, buf, plen)) < 0) 764 if ((n = read(nfd, buf, plen)) < 0)
765 return; 765 return;
766 else if (n == 0) { 766 else if (n == 0) {
@@ -775,7 +775,7 @@ readwrite(int nfd)
775 } 775 }
776 } 776 }
777 777
778 if (!dflag && pfd[1].revents & POLLIN) { 778 if (!dflag && pfd[1].revents & (POLLIN|POLLHUP)) {
779 if ((n = read(wfd, buf, plen)) < 0) 779 if ((n = read(wfd, buf, plen)) < 0)
780 return; 780 return;
781 else if (n == 0) { 781 else if (n == 0) {