Commit 742664c6 authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Protect against any sort of non-block read that

would block. If ap_get_brigade() shows that, return
EAGAIN.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@480193 13f79535-47bb-0310-9956-ffa450edef68
parent 1758ce24
Loading
Loading
Loading
Loading
+4 −2
Changes for modules/http/http_filters.c: 4 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -216,7 +216,8 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b,

            /* for timeout */
            if (block == APR_NONBLOCK_READ &&
                rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb)) {
                ( (rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb)) ||
                  (APR_STATUS_IS_EAGAIN(rv)) )) {
                return APR_EAGAIN;
            }

@@ -304,7 +305,8 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b,
                                        block, 0);
                    /* Test timeout */
                    if (block == APR_NONBLOCK_READ &&
                        rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb)) {
                        ( (rv == APR_SUCCESS && APR_BRIGADE_EMPTY(bb)) ||
                          (APR_STATUS_IS_EAGAIN(rv)) )) {
                        ctx->state = BODY_CHUNK_PART;
                        return APR_EAGAIN;
                    }