diff options
author | millert <> | 2014-10-26 13:59:30 +0000 |
---|---|---|
committer | millert <> | 2014-10-26 13:59:30 +0000 |
commit | 77608e1e83f23ad41247b5fe52616f87439bb30f (patch) | |
tree | 11436030293500a075e39850129bf5302ff2c888 | |
parent | 0f7ca1f1c7fb8a8c82864d35d1ebe0681fbb1b99 (diff) | |
download | openbsd-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.c | 6 |
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) { |