Welcome! Log In Create A New Profile

Advanced

ngx_resolver.c leaks memory?

Matthew Dempsky
September 16, 2009 01:36AM
I'm still familiarizing myself with nginx's architecture, but it looks
like ngx_resolver.c leaks memory in a few places. Before I spend any
time tracking more down, I thought I'd point out one apparent leak so
someone can perhaps correct me before I waste my time.

In ngx_resolver_process_a(), ngx_resolver_copy() is used to
dynamically allocate memory into name.data. This memory is only
passed to a few logging functions and to ngx_resolver_lookup_name().
(The name variable is also reused in the CNAME handling path, but it's
first overwritten by another call to ngx_resolver_copy().)

There does not appear to be any code responsible for ensuring that
name.data is freed. Is there any deeper architecture preventing this
memory from being leaked that I've missed?

Included below is a patch that I believe fixes this particular memory
leak. If someone can confirm that this is indeed correct, I'll
continue investigating the other apparent leaks.

Thanks!


--- src/core/ngx_resolver.c.orig 2009-09-15 22:12:31.000000000 -0700
+++ src/core/ngx_resolver.c 2009-09-15 22:24:06.000000000 -0700
@@ -1149,6 +1149,8 @@ ngx_resolver_process_a(ngx_resolver_t *r
goto failed;
}

+ ngx_resolver_free(r, name.data);
+
if (code == 0 && nan == 0) {
code = 3; /* NXDOMAIN */
}
@@ -1400,6 +1402,8 @@ failed:

/* unlock name mutex */

+ ngx_resolver_free(r, name.data);
+
return;
}
Subject Author Posted

ngx_resolver.c leaks memory?

Matthew Dempsky September 16, 2009 01:36AM

Re: ngx_resolver.c leaks memory?

Maxim Dounin September 16, 2009 06:42AM

Re: ngx_resolver.c leaks memory?

Matthew Dempsky September 16, 2009 12:30PM

Re: ngx_resolver.c leaks memory?

Maxim Dounin September 17, 2009 06:44AM

Re: ngx_resolver.c leaks memory?

Igor Sysoev September 17, 2009 07:52AM

Re: ngx_resolver.c leaks memory?

Maxim Dounin September 17, 2009 09:34AM

Re: ngx_resolver.c leaks memory?

Igor Sysoev September 16, 2009 10:04AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 159
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready