From: Igor Sysoev Date: Thu, 28 Feb 2008 20:09:39 +0000 (+0000) Subject: fix memory leaks, use unlocked ngx_resolver_free() for seldom failed cases X-Git-Tag: release-0.6.27~24 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=7c4cf27aff2129adf7fc48b85a4e41c13bc34635;p=nginx.git fix memory leaks, use unlocked ngx_resolver_free() for seldom failed cases --- diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index 15181dae6..d3e6c43c1 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -212,14 +212,13 @@ ngx_resolve_name(ngx_resolver_ctx_t *ctx) return NGX_OK; } - /* lock alloc mutex */ + /* NGX_ERROR */ if (ctx->event) { - ngx_resolver_free_locked(r, ctx->event); - ctx->event = NULL; + ngx_resolver_free(r, ctx->event); } - /* unlock alloc mutex */ + ngx_resolver_free(r, ctx); return NGX_ERROR; } @@ -280,7 +279,15 @@ done: /* unlock name mutex */ - ngx_resolver_free(r, ctx); + /* lock alloc mutex */ + + if (ctx->event) { + ngx_resolver_free_locked(r, ctx->event); + } + + ngx_resolver_free_locked(r, ctx); + + /* unlock alloc mutex */ } @@ -573,15 +580,11 @@ failed: /* unlock addr mutex */ - /* lock alloc mutex */ - if (ctx->event) { - ngx_resolver_free_locked(r, ctx->event); + ngx_resolver_free(r, ctx->event); } - ngx_resolver_free_locked(r, ctx); - - /* unlock alloc mutex */ + ngx_resolver_free(r, ctx); return NGX_ERROR; } @@ -640,7 +643,15 @@ done: /* unlock addr mutex */ - ngx_resolver_free(r, ctx); + /* lock alloc mutex */ + + if (ctx->event) { + ngx_resolver_free_locked(r, ctx->event); + } + + ngx_resolver_free_locked(r, ctx); + + /* unlock alloc mutex */ }