# HG changeset patch # User Maxim Dounin # Date 1344250089 0 # Node ID dd63abf20ba7b98139bb7ef7dbebbfac2623aaaf # Parent 2220ce29b9d301ba665ca478e0cd099573a2d876 Resolver: fixed possible memory leak in ngx_resolver_create(). Found by Coverity. diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -113,15 +113,6 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_ return NULL; } - if (n) { - if (ngx_array_init(&r->udp_connections, cf->pool, n, - sizeof(ngx_udp_connection_t)) - != NGX_OK) - { - return NULL; - } - } - cln->data = r; r->event = ngx_calloc(sizeof(ngx_event_t), cf->log); @@ -153,6 +144,15 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_ r->log = &cf->cycle->new_log; r->log_level = NGX_LOG_ERR; + if (n) { + if (ngx_array_init(&r->udp_connections, cf->pool, n, + sizeof(ngx_udp_connection_t)) + != NGX_OK) + { + return NULL; + } + } + for (i = 0; i < n; i++) { if (ngx_strncmp(names[i].data, "valid=", 6) == 0) { s.len = names[i].len - 6;