From: Maxim Dounin Date: Mon, 5 Mar 2012 13:06:29 +0000 (+0000) Subject: Merge of r4497: X-Git-Tag: release-1.0.13~4 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/postgres_fdw.c?a=commitdiff_plain;h=2d3fff0c5e1adb67991f6ca716e8bec42b2e61a7;p=nginx.git Merge of r4497: Fixed null pointer dereference in resolver (ticket #91). The cycle->new_log.file may not be set before config parsing finished if there are no error_log directive defined at global level. Fix is to copy it after config parsing. Patch by Roman Arutyunyan. --- diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index 7291a1c5d..7e77b191a 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -152,11 +152,6 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_addr_t *addr) uc->sockaddr = addr->sockaddr; uc->socklen = addr->socklen; uc->server = addr->name; - - uc->log = cf->cycle->new_log; - uc->log.handler = ngx_resolver_log_error; - uc->log.data = uc; - uc->log.action = "resolving"; } return r; @@ -830,6 +825,12 @@ ngx_resolver_send_query(ngx_resolver_t *r, ngx_resolver_node_t *rn) uc = r->udp_connection; if (uc->connection == NULL) { + + uc->log = *r->log; + uc->log.handler = ngx_resolver_log_error; + uc->log.data = uc; + uc->log.action = "resolving"; + if (ngx_udp_connect(uc) != NGX_OK) { return NGX_ERROR; }