diff --git a/modules/proxy/mod_proxy_uwsgi.c b/modules/proxy/mod_proxy_uwsgi.c index 92e153cc24390f104de33c22cbb2eba68695eff7..cbe00d8ba5a47e3c746b1c5e937392597fe82327 100644 --- a/modules/proxy/mod_proxy_uwsgi.c +++ b/modules/proxy/mod_proxy_uwsgi.c @@ -312,6 +312,7 @@ static int uwsgi_response(request_rec *r, proxy_conn_rec * backend, return HTTP_INTERNAL_SERVER_ERROR; } backend->worker->s->read += len; + if ((apr_size_t)len >= sizeof(buffer)) { /* too long */ return HTTP_INTERNAL_SERVER_ERROR; @@ -354,6 +355,7 @@ static int uwsgi_response(request_rec *r, proxy_conn_rec * backend, break; } value = strchr(buffer, ':'); + /* invalid header skip */ if (!value) { /* invalid header */ len = -1;