Commit 1ff69a11 authored by Yann Ylavic's avatar Yann Ylavic
Browse files

Follow up to r1685904: apply the missing 'parsing' bits.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1685950 13f79535-47bb-0310-9956-ffa450edef68
parent fdc3bb1c
Loading
Loading
Loading
Loading
+11 −6
Changes for modules/http/http_filters.c: 11 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -502,22 +502,27 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b,
                apr_size_t len;

                if (!APR_BUCKET_IS_METADATA(e)) {
                    int parsing = 0;

                    rv = apr_bucket_read(e, &buffer, &len, APR_BLOCK_READ);
                    if (rv != APR_SUCCESS) {
                        ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, f->r, APLOGNO(01590)
                                      "Error reading/parsing chunk %s ",
                                      (APR_ENOSPC == rv) ? "(overflow)" : "");
                        return rv;
                    }

                    if (rv == APR_SUCCESS) {
                        parsing = 1;
                        rv = parse_chunk_size(ctx, buffer, len,
                                f->r->server->limit_req_fieldsize);
                    }
                    if (rv != APR_SUCCESS) {
                        ap_log_rerror(APLOG_MARK, APLOG_INFO, rv, f->r, APLOGNO(01590)
                                      "Error reading/parsing chunk %s ",
                                      (APR_ENOSPC == rv) ? "(overflow)" : "");
                        if (parsing) {
                            if (rv != APR_ENOSPC) {
                                http_error = HTTP_BAD_REQUEST;
                            }
                            return bail_out_on_error(ctx, f, http_error);
                        }
                        return rv;
                    }
                }

                apr_bucket_delete(e);