=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ftp/fetch.c,v retrieving revision 1.138.2.1 retrieving revision 1.139 diff -c -r1.138.2.1 -r1.139 *** src/usr.bin/ftp/fetch.c 2016/02/02 19:47:38 1.138.2.1 --- src/usr.bin/ftp/fetch.c 2015/07/18 21:50:47 1.139 *************** *** 1,4 **** ! /* $OpenBSD: fetch.c,v 1.138.2.1 2016/02/02 19:47:38 martijn Exp $ */ /* $NetBSD: fetch.c,v 1.14 1997/08/18 10:20:20 lukem Exp $ */ /*- --- 1,4 ---- ! /* $OpenBSD: fetch.c,v 1.139 2015/07/18 21:50:47 bluhm Exp $ */ /* $NetBSD: fetch.c,v 1.14 1997/08/18 10:20:20 lukem Exp $ */ /*- *************** *** 1509,1521 **** int SSL_vprintf(struct tls *tls, const char *fmt, va_list ap) { ! char *string; ! size_t nw; int ret; if ((ret = vasprintf(&string, fmt, ap)) == -1) return ret; ! ret = tls_write(tls, string, ret, &nw); free(string); return ret; } --- 1509,1531 ---- int SSL_vprintf(struct tls *tls, const char *fmt, va_list ap) { ! char *string, *buf; ! size_t nw, len; int ret; if ((ret = vasprintf(&string, fmt, ap)) == -1) return ret; ! buf = string; ! len = ret; ! while (len > 0) { ! ret = tls_write(tls, buf, len, &nw); ! if (ret == TLS_READ_AGAIN || ret == TLS_WRITE_AGAIN) ! continue; ! if (ret < 0) ! break; ! buf += nw; ! len -= nw; ! } free(string); return ret; } *************** *** 1545,1554 **** errx(1, "SSL read error: %u", ret); buf[i] = c; ! if (c == '\n') { ! buf[i] = '\0'; break; - } } *lenp = i; return (buf); --- 1555,1562 ---- errx(1, "SSL read error: %u", ret); buf[i] = c; ! if (c == '\n') break; } *lenp = i; return (buf);