From df230e1712d4f8007064eff80b3d9e7155546c3e Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Fri, 17 Jun 2005 14:51:53 +0000 Subject: [PATCH] Memory leak fix in pg_error git-svn-id: http://svn.osgeo.org/postgis/trunk@1766 b70326c6-7e19-0410-871a-916f4a2858ee --- CHANGES | 1 + lwgeom/lwgeom_pg.c | 20 +++++++------------- 2 files changed, 8 insertions(+), 13 deletions(-) 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 -- 2.50.1