openresty/patches/nginx-1.4.3-gzip_flush_bug....

29 lines
901 B
Diff

--- nginx-1.4.3/src/http/modules/ngx_http_gzip_filter_module.c 2013-10-08 05:07:14.000000000 -0700
+++ nginx-1.4.3-patched/src/http/modules/ngx_http_gzip_filter_module.c 2013-10-26 17:14:22.132109569 -0700
@@ -370,11 +370,12 @@ ngx_http_gzip_body_filter(ngx_http_reque
}
}
- if (ctx->nomem) {
+ if (ctx->nomem || in == NULL) {
/* flush busy buffers */
- if (ngx_http_next_body_filter(r, NULL) == NGX_ERROR) {
+ rc = ngx_http_next_body_filter(r, NULL);
+ if (rc == NGX_ERROR) {
goto failed;
}
@@ -383,6 +384,10 @@ ngx_http_gzip_body_filter(ngx_http_reque
ngx_chain_update_chains(r->pool, &ctx->free, &ctx->busy, &cl,
(ngx_buf_tag_t) &ngx_http_gzip_filter_module);
ctx->nomem = 0;
+
+ if (in == NULL) {
+ return rc;
+ }
}
for ( ;; ) {