From: Paul Ramsey <pramsey@cleverelephant.ca> Date: Fri, 22 Sep 2017 19:55:39 +0000 (+0000) Subject: Fix crash on larger geometries, caused by direct freeing X-Git-Tag: 2.4.0rc2~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae6f1d6287c1c901b777f6b61465f825149f83d3;p=postgis Fix crash on larger geometries, caused by direct freeing of bytebuffer internals git-svn-id: http://svn.osgeo.org/postgis/trunk@15798 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/bytebuffer.c b/liblwgeom/bytebuffer.c index 913cc96cf..e5e6e017a 100644 --- a/liblwgeom/bytebuffer.c +++ b/liblwgeom/bytebuffer.c @@ -104,7 +104,10 @@ void bytebuffer_destroy_buffer(bytebuffer_t *s) { if ( s->buf_start != s->buf_static ) + { lwfree(s->buf_start); + s->buf_start = NULL; + } return; } diff --git a/liblwgeom/lwout_twkb.c b/liblwgeom/lwout_twkb.c index 38ca94046..695df4dc0 100644 --- a/liblwgeom/lwout_twkb.c +++ b/liblwgeom/lwout_twkb.c @@ -211,7 +211,7 @@ static int ptarray_to_twkb_buf(const POINTARRAY *pa, TWKB_GLOBALS *globals, TWKB bytebuffer_append_bytebuffer(ts->geom_buf, b_p); /* Clear our temporary buffer */ - lwfree(b.buf_start); + bytebuffer_destroy_buffer(&b); } else {