diff options
Diffstat (limited to 'src/server/mod_wsgi.c')
-rw-r--r-- | src/server/mod_wsgi.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/mod_wsgi.c b/src/server/mod_wsgi.c index d876299..99f01b8 100644 --- a/src/server/mod_wsgi.c +++ b/src/server/mod_wsgi.c @@ -10709,7 +10709,7 @@ static apr_status_t wsgi_socket_sendv(apr_socket_t *sock, struct iovec *vec, if (nvec > iov_max) { int offset = 0; - while (nvec > 0) { + while (nvec != 0) { apr_status_t rv; rv = wsgi_socket_sendv_limit(sock, &vec[offset], @@ -10718,8 +10718,12 @@ static apr_status_t wsgi_socket_sendv(apr_socket_t *sock, struct iovec *vec, if (rv != APR_SUCCESS) return rv; - nvec -= iov_max; - offset += iov_max; + if (nvec > iov_max) { + nvec -= iov_max; + offset += iov_max; + } else { + nvec = 0; + } } return APR_SUCCESS; |