]> granicus.if.org Git - postgis/commitdiff
Fix crash on larger geometries, caused by direct freeing
authorPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 22 Sep 2017 19:55:39 +0000 (19:55 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 22 Sep 2017 19:55:39 +0000 (19:55 +0000)
of bytebuffer internals

git-svn-id: http://svn.osgeo.org/postgis/trunk@15798 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/bytebuffer.c
liblwgeom/lwout_twkb.c

index 913cc96cf827969175471c5c7254900984da0adb..e5e6e017a60e9e8a06b950e1f7ae899246fbec7a 100644 (file)
@@ -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;
 }
index 38ca94046142f480f59f9e8e833fe96f82fe6bf5..695df4dc02118b56c81d44d66b10351dbb7307fb 100644 (file)
@@ -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
        {