summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/src/apps/s_server.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/lib/libssl/src/apps/s_server.c b/src/lib/libssl/src/apps/s_server.c
index 1c13d5517d..45c4f5fa9c 100644
--- a/src/lib/libssl/src/apps/s_server.c
+++ b/src/lib/libssl/src/apps/s_server.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s_server.c,v 1.56 2014/07/09 21:02:35 tedu Exp $ */ 1/* $OpenBSD: s_server.c,v 1.57 2014/07/10 08:59:15 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1709,9 +1709,20 @@ sv_body(char *hostname, int s, unsigned char *context)
1709 again: 1709 again:
1710 i = SSL_read(con, (char *) buf, bufsize); 1710 i = SSL_read(con, (char *) buf, bufsize);
1711 switch (SSL_get_error(con, i)) { 1711 switch (SSL_get_error(con, i)) {
1712 case SSL_ERROR_NONE: 1712 case SSL_ERROR_NONE: {
1713 write(fileno(stdout), buf, 1713 int len, n;
1714 (unsigned int) i); 1714 for (len = 0; len < i;) {
1715 do {
1716 n = write(fileno(stdout), buf + len, i - len);
1717 } while (n == -1 && errno == EINTR);
1718
1719 if (n < 0) {
1720 BIO_printf(bio_s_out, "ERROR\n");
1721 goto err;
1722 }
1723 len += n;
1724 }
1725 }
1715 if (SSL_pending(con)) 1726 if (SSL_pending(con))
1716 goto again; 1727 goto again;
1717 break; 1728 break;