[nginx] svn commit: r4603 - trunk/src/http/modules
mdounin at mdounin.ru
mdounin at mdounin.ru
Mon Apr 23 10:40:02 UTC 2012
Author: mdounin
Date: 2012-04-23 10:40:01 +0000 (Mon, 23 Apr 2012)
New Revision: 4603
URL: http://trac.nginx.org/nginx/changeset/4603/nginx
Log:
Proxy: added ctx checking to input filters.
The proxy module context may be NULL in case of filter finalization
(e.g. by image_filter) followed by an internal redirect. This needs
some better handling, but for now just check if ctx is still here.
Modified:
trunk/src/http/modules/ngx_http_proxy_module.c
Modified: trunk/src/http/modules/ngx_http_proxy_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_proxy_module.c 2012-04-21 19:02:21 UTC (rev 4602)
+++ trunk/src/http/modules/ngx_http_proxy_module.c 2012-04-23 10:40:01 UTC (rev 4603)
@@ -1497,6 +1497,10 @@
u = r->upstream;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"http proxy filter init s:%d h:%d c:%d l:%O",
u->headers_in.status_n, ctx->head, u->headers_in.chunked,
@@ -1636,6 +1640,11 @@
} state;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
state = ctx->state;
if (state == sw_chunk_data && ctx->size == 0) {
@@ -1883,6 +1892,10 @@
r = p->input_ctx;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
b = NULL;
prev = &buf->shadow;
@@ -2064,6 +2077,11 @@
ngx_http_proxy_ctx_t *ctx;
ctx = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+
+ if (ctx == NULL) {
+ return NGX_ERROR;
+ }
+
u = r->upstream;
buf = &u->buffer;
More information about the nginx-devel
mailing list