diff src/http/ngx_http_script.c @ 84:991c6e4c7654 NGINX_0_1_42

nginx 0.1.42 *) Bugfix: if the request URI had a zero length after the processing in the ngx_http_proxy_module, then the segmentation fault or bus error occurred in the ngx_http_proxy_module. *) Bugfix: the "limit_rate" directive did not work inside the "if" block; bug appeared in 0.1.38.
author Igor Sysoev <http://sysoev.ru>
date Tue, 23 Aug 2005 00:00:00 +0400
parents da9a3b14312d
children f63280c59dd5
line wrap: on
line diff
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -687,6 +687,14 @@ ngx_http_script_regex_end_code(ngx_http_
     if (code->uri) {
         r->uri = e->buf;
 
+        if (r->uri.len == 0) {
+            ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
+                          "the rewritten URI has a zero length");
+            e->ip = ngx_http_script_exit;
+            e->status = NGX_HTTP_INTERNAL_SERVER_ERROR;
+            return;
+        }
+
         if (ngx_http_set_exten(r) != NGX_OK) {
             e->ip = ngx_http_script_exit;
             e->status = NGX_HTTP_INTERNAL_SERVER_ERROR;
@@ -737,6 +745,7 @@ ngx_http_script_if_code(ngx_http_script_
     if (e->sp->value) {
         if (code->loc_conf) {
             e->request->loc_conf = code->loc_conf;
+            ngx_http_update_location_config(e->request);
         }
 
         e->ip += sizeof(ngx_http_script_if_code_t);