]> git.kaiwu.me - nginx.git/commitdiff
Access log: fix default value, broken by cb308813b453.
authorPiotr Sikora <piotr@cloudflare.com>
Tue, 3 Jun 2014 17:53:48 +0000 (10:53 -0700)
committerPiotr Sikora <piotr@cloudflare.com>
Tue, 3 Jun 2014 17:53:48 +0000 (10:53 -0700)
log->filter ("if" parameter) was uninitialized when the default value
was being used, which would lead to a crash (SIGSEGV) when access_log
directive wasn't specified in the configuration.

Zero-fill the whole structure instead of zeroing fields one-by-one
in order to prevent similar issues in the future.

Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
src/http/modules/ngx_http_log_module.c

index f51ba938d520c3b760e899f8da044e334a4ec88f..bc660cdd6f82617a08ec1a7e31bfbf32866f12b1 100644 (file)
@@ -1109,16 +1109,13 @@ ngx_http_log_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
         return NGX_CONF_ERROR;
     }
 
+    ngx_memzero(log, sizeof(ngx_http_log_t));
+
     log->file = ngx_conf_open_file(cf->cycle, &ngx_http_access_log);
     if (log->file == NULL) {
         return NGX_CONF_ERROR;
     }
 
-    log->script = NULL;
-    log->disk_full_time = 0;
-    log->error_log_time = 0;
-    log->syslog_peer = NULL;
-
     lmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_log_module);
     fmt = lmcf->formats.elts;