Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Течет память при проксировании
- To: "nginx-ru@xxxxxxxxx" <nginx-ru@xxxxxxxxx>
- Subject: Re: Течет память при проксировании
- From: Denis F. Latypoff <latypoff@xxxxxxxxx>
- Date: Mon, 28 May 2012 08:15:42 +0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1338167743; bh=LNT+iR/M4Uf6IXaQtkJnCa/qmWY5Aol6PqZXlJoYuMY=; h=From:To:In-Reply-To:References:Subject:MIME-Version:Message-Id: Date:Content-Type; b=KuvUqH5NE7LuBBT55W8hbx5jmFgnCNF1AmUxrVV9qNYH7N4N4TCosyWj3JiXaHyk0 o/SaaYjIYghns64hsQxxlNNEffMME9ZGiiVEJzz4ZXiLoPUdEjnVXh9AOwjd25ZcZK x6lP8ETZpIxTWsVu7GnrWkFSHIMc7iMiykYe1qFE=
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1338167743; bh=LNT+iR/M4Uf6IXaQtkJnCa/qmWY5Aol6PqZXlJoYuMY=; h=From:To:In-Reply-To:References:Subject:MIME-Version:Message-Id: Date:Content-Type; b=KuvUqH5NE7LuBBT55W8hbx5jmFgnCNF1AmUxrVV9qNYH7N4N4TCosyWj3JiXaHyk0 o/SaaYjIYghns64hsQxxlNNEffMME9ZGiiVEJzz4ZXiLoPUdEjnVXh9AOwjd25ZcZK x6lP8ETZpIxTWsVu7GnrWkFSHIMc7iMiykYe1qFE=
- In-reply-to: <631221338164211@web26g.yandex.ru>
- References: <210681338047095@web29g.yandex.ru> <20120527164545.GI31671@mdounin.ru> <631221338164211@web26g.yandex.ru>
28.05.2012, 07:16, "Denis F. Latypoff" <latypoff@xxxxxxxxx>:
> 27.05.2012, 23:45, "Maxim Dounin" <mdounin@xxxxxxxxxx>:
>
> [...]
>
>> 2)
>>> geoip_city /usr/share/GeoIP/GeoIPCity.dat utf8;
>>> geoip_org /usr/share/GeoIP/GeoIPASNum.dat utf8;
>> Модуль geoip - он, конечно, хороший, но пользуется библиотекой
>> от MaxMind'а. А та известна как минимум тем, что падает на
>> некорректных данных в базе. Так что я бы рекомендовал выключить и
>> посмотреть, что будет.
>
> Всем патч!
А если причесать, то как-то так.
--
br, Denis F. Latypoff. diff -ru nginx-1.3.0/src/http/modules/ngx_http_geoip_module.c
nginx-1.3.0.geoip/src/http/modules/ngx_http_geoip_module.c
--- nginx-1.3.0/src/http/modules/ngx_http_geoip_module.c 2012-05-14
09:00:17.000000000 -0500
+++ nginx-1.3.0.geoip/src/http/modules/ngx_http_geoip_module.c 2012-05-27
20:10:19.000000000 -0500
@@ -293,24 +293,33 @@
const char *val;
ngx_http_geoip_conf_t *gcf;
+ size_t len;
gcf = ngx_http_get_module_main_conf(r, ngx_http_geoip_module);
-
if (gcf->org == NULL) {
goto not_found;
}
val = handler(gcf->org, ngx_http_geoip_addr(r, gcf));
-
if (val == NULL) {
goto not_found;
}
- v->len = ngx_strlen(val);
+ len = ngx_strlen(val);
+ v->data = ngx_pnalloc(r->pool, len);
+ if (v->data == NULL) {
+ ngx_free ((void *) val);
+ return NGX_ERROR;
+ }
+
+ ngx_memcpy (v->data, val, len);
+
+ v->len = len;
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
- v->data = (u_char *) val;
+
+ ngx_free ((void *) val);
return NGX_OK;
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|