# HG changeset patch # User Maxim Dounin # Date 1330952789 0 # Node ID 79142134d616a772432f78929515938ab108ae45 # Parent 2dfa4d76e4c57e071b5e0d4f69fb87bbc059c279 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 -r 2dfa4d76e4c5 -r 79142134d616 src/core/ngx_resolver.c --- a/src/core/ngx_resolver.c Mon Mar 05 13:03:39 2012 +0000 +++ b/src/core/ngx_resolver.c Mon Mar 05 13:06:29 2012 +0000 @@ -152,11 +152,6 @@ 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 @@ 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; }