diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-10-28 10:19:03 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-10-28 10:19:03 +0000 |
| commit | 32a4a82829bc6547d33731d4a7c9d8768fc4a1cd (patch) | |
| tree | c3455ee09d1fe5403e6bd7cefb2e1a0fb551b028 /lib/libfetch | |
| parent | 9805beec050fbf62e48c81c1a9ac53163ae15656 (diff) | |
Notes
Diffstat (limited to 'lib/libfetch')
| -rw-r--r-- | lib/libfetch/common.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 1ae9193c1d6a..9252a36edff0 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -458,7 +458,7 @@ _fetch_write(conn_t *conn, const char *buf, size_t len) { struct iovec iov; - iov.iov_base = (char *)buf; + iov.iov_base = __DECONST(char *, buf); iov.iov_len = len; return _fetch_writev(conn, &iov, 1); } @@ -525,15 +525,14 @@ _fetch_writev(conn_t *conn, struct iovec *iov, int iovcnt) return (-1); } total += wlen; - while (iovcnt > 0 && wlen > iov->iov_len) { + while (iovcnt > 0 && wlen >= (ssize_t)iov->iov_len) { wlen -= iov->iov_len; iov++; iovcnt--; } if (iovcnt > 0) { iov->iov_len -= wlen; - iov->iov_base += wlen; - wlen = 0; + iov->iov_base = __DECONST(char *, iov->iov_base) + wlen; } } return (total); @@ -549,9 +548,9 @@ _fetch_putln(conn_t *conn, const char *str, size_t len) struct iovec iov[2]; DEBUG(fprintf(stderr, ">>> %s\n", str)); - iov[0].iov_base = (char *)str; + iov[0].iov_base = __DECONST(char *, str); iov[0].iov_len = len; - iov[1].iov_base = (char *)ENDL; + iov[1].iov_base = __DECONST(char *, ENDL); iov[1].iov_len = sizeof ENDL; if (_fetch_writev(conn, iov, 2) == -1) return (-1); |
