summaryrefslogtreecommitdiff
path: root/src/http/modules
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-08-10 08:26:33 +0000
committerJonathan Kolb <jon@b0g.us>2009-08-10 08:26:33 +0000
commit28ee64eb5666e0dff44f597e3791234cf2275ffd (patch)
treeafb4cf19c5f2238beef4b08e92047ad59856a0e5 /src/http/modules
parent93a2c2abaa9fc731180fb97c7a63f61cd8b4d123 (diff)
downloadnginx-28ee64eb5666e0dff44f597e3791234cf2275ffd.tar.gz
Changes with nginx 0.8.8 10 Aug 2009v0.8.8
*) Bugfix: in handling FastCGI headers split in records. *) Bugfix: a segmentation fault occurred in worker process, if a request was handled in two proxied or FastCGIed locations and a caching was enabled in the first location; the bug had appeared in 0.8.7.
Diffstat (limited to 'src/http/modules')
-rw-r--r--src/http/modules/ngx_http_fastcgi_module.c9
-rw-r--r--src/http/modules/perl/nginx.pm2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c
index 1855e3ccb..fc0cf14e1 100644
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -1065,7 +1065,7 @@ ngx_http_fastcgi_reinit_request(ngx_http_request_t *r)
static ngx_int_t
ngx_http_fastcgi_process_header(ngx_http_request_t *r)
{
- u_char *p, *start, *last, *part_start;
+ u_char *p, *start, *last, *part_start, *part_end;
size_t size;
ngx_str_t *status_line, line, *pattern;
ngx_int_t rc, status;
@@ -1237,6 +1237,7 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
for ( ;; ) {
part_start = u->buffer.pos;
+ part_end = u->buffer.last;
rc = ngx_http_parse_header_line(r, &u->buffer, 1);
@@ -1437,7 +1438,11 @@ ngx_http_fastcgi_process_header(ngx_http_request_t *r)
part = ngx_array_push(f->split_parts);
part->start = part_start;
- part->end = u->buffer.last;
+ part->end = part_end;
+
+ if (u->buffer.pos < u->buffer.last) {
+ continue;
+ }
return NGX_AGAIN;
}
diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm
index 75d0a1307..52a7bcecc 100644
--- a/src/http/modules/perl/nginx.pm
+++ b/src/http/modules/perl/nginx.pm
@@ -47,7 +47,7 @@ our @EXPORT = qw(
HTTP_INSUFFICIENT_STORAGE
);
-our $VERSION = '0.8.7';
+our $VERSION = '0.8.8';
require XSLoader;
XSLoader::load('nginx', $VERSION);