From: Sandro Santilli Date: Fri, 17 Jun 2005 14:51:53 +0000 (+0000) Subject: Memory leak fix in pg_error X-Git-Tag: pgis_1_1_0~329 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df230e1712d4f8007064eff80b3d9e7155546c3e;p=postgis Memory leak fix in pg_error git-svn-id: http://svn.osgeo.org/postgis/trunk@1766 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/CHANGES b/CHANGES index 804aa6472..a04aef8a5 100644 --- a/CHANGES +++ b/CHANGES @@ -14,6 +14,7 @@ PostGIS 1.1.0CVS - JTS support improvements - Fault tolerant btree ops - NEW -I (index) switch in shp2pgsql + - Memory Leak fix in pg_error PostGIS 1.0.1 2005/05/24 diff --git a/lwgeom/lwgeom_pg.c b/lwgeom/lwgeom_pg.c index 9dca71732..02824c92e 100644 --- a/lwgeom/lwgeom_pg.c +++ b/lwgeom/lwgeom_pg.c @@ -50,23 +50,17 @@ pg_free(void *ptr) void pg_error(const char *fmt, ...) { - char *msg; +#define ERRMSG_MAXLEN 256 + + char errmsg[ERRMSG_MAXLEN+1]; va_list ap; va_start (ap, fmt); + vsnprintf (errmsg, ERRMSG_MAXLEN, fmt, ap); + va_end (ap); - /* - * This is a GNU extension. - * Dunno how to handle errors here. - */ - if (!vasprintf (&msg, fmt, ap)) - { - va_end (ap); - return; - } - elog(ERROR, "%s", msg); - va_end(ap); - free(msg); + errmsg[ERRMSG_MAXLEN]='\0'; + elog(ERROR, "%s", errmsg); } void