]> git.kaiwu.me - nginx.git/commitdiff
Fixed invalid access to complex value defined as an empty string.
authorSergey Kandaurov <pluknet@nginx.com>
Tue, 31 Mar 2015 14:45:50 +0000 (17:45 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Tue, 31 Mar 2015 14:45:50 +0000 (17:45 +0300)
Found by Valgrind.

src/http/modules/ngx_http_headers_filter_module.c
src/http/ngx_http_special_response.c

index a10056903f538ec2a7f1219112439ae0b6f22e1e..a356814e4ce9be8143e2df29e9a8307ad8b5e358 100644 (file)
@@ -378,7 +378,7 @@ ngx_http_parse_expires(ngx_str_t *value, ngx_http_expires_t *expires,
         }
     }
 
-    if (value->data[0] == '@') {
+    if (value->len && value->data[0] == '@') {
         value->data++;
         value->len--;
         minus = 0;
@@ -390,12 +390,12 @@ ngx_http_parse_expires(ngx_str_t *value, ngx_http_expires_t *expires,
 
         *expires = NGX_HTTP_EXPIRES_DAILY;
 
-    } else if (value->data[0] == '+') {
+    } else if (value->len && value->data[0] == '+') {
         value->data++;
         value->len--;
         minus = 0;
 
-    } else if (value->data[0] == '-') {
+    } else if (value->len && value->data[0] == '-') {
         value->data++;
         value->len--;
         minus = 1;
index 546400539ba5f02d2aa8d70ad4c6f6c36a17985f..a97791e8b8622511919f5f5780d91287953cd416 100644 (file)
@@ -553,7 +553,7 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
         return NGX_ERROR;
     }
 
-    if (uri.data[0] == '/') {
+    if (uri.len && uri.data[0] == '/') {
 
         if (err_page->value.lengths) {
             ngx_http_split_args(r, &uri, &args);
@@ -570,7 +570,7 @@ ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
         return ngx_http_internal_redirect(r, &uri, &args);
     }
 
-    if (uri.data[0] == '@') {
+    if (uri.len && uri.data[0] == '@') {
         return ngx_http_named_location(r, &uri);
     }