From ae6f1d6287c1c901b777f6b61465f825149f83d3 Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Fri, 22 Sep 2017 19:55:39 +0000 Subject: [PATCH] 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 --- liblwgeom/bytebuffer.c | 3 +++ liblwgeom/lwout_twkb.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) 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 { -- 2.50.0