From: Raúl Marín Rodríguez Date: Thu, 15 Nov 2018 09:05:32 +0000 (+0000) Subject: Allocate enough memory in gidx_to_string X-Git-Tag: 2.3.8~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2b1f87f1110e7b54e280d0ae684b2f3a847f298;p=postgis Allocate enough memory in gidx_to_string References #4236 git-svn-id: http://svn.osgeo.org/postgis/branches/2.3@17016 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/NEWS b/NEWS index 739d55c32..4ee8c8db3 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,7 @@ PostGIS 2.3.8 - #4206, Fix support for PostgreSQL 12 dev branch (Laurenz Albe) - #3457, Fix raster envelope shortcut in ST_Clip (Sai-bot) - #4223, Fix parallel/near rectangle case in geography (Paul Ramsey) + - #4326, Allocate enough memory in gidx_to_string (Raúl Marín) PostGIS 2.3.7 2018/04/06 diff --git a/libpgcommon/gserialized_gist.c b/libpgcommon/gserialized_gist.c index ec2585d6a..ff3a78421 100644 --- a/libpgcommon/gserialized_gist.c +++ b/libpgcommon/gserialized_gist.c @@ -39,8 +39,13 @@ char* gidx_to_string(GIDX *a) if ( a == NULL ) return pstrdup(""); - - str = (char*)palloc(128); /* 15*2*4+8==128 */ + /* 4 (GIDX_MAX_DIM) * + * 2 (MAX & MIN) * + * 20 (Max representation (e.g. -3.40282346639e+38) [19] + space) + * = 4*2*20 = 160 + * + 9 [ 'GIDX(' = 5, ',' = 1, ' )' = 2 + '\0' = 1] + */ + str = (char *)palloc(169); rv = str; ndims = GIDX_NDIMS(a);