From 3fa838d85554b050c467235cdec5f5831c45fe4e Mon Sep 17 00:00:00 2001 From: Ulysse Buonomo Date: Thu, 13 Oct 2022 15:45:07 +0200 Subject: [PATCH] fix leak --- ext/geos_c_impl/polygon.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ext/geos_c_impl/polygon.c b/ext/geos_c_impl/polygon.c index 5ec96146..15ecc57e 100644 --- a/ext/geos_c_impl/polygon.c +++ b/ext/geos_c_impl/polygon.c @@ -252,6 +252,8 @@ cmethod_create(VALUE module, exterior_geom = rgeo_convert_to_detached_geos_geometry( exterior, factory, linear_ring_type, NULL, &state); if (state) { + if (exterior_geom) + GEOSGeom_destroy(exterior_geom); rb_exc_raise(rb_errinfo()); } if (!exterior_geom) { @@ -269,12 +271,12 @@ cmethod_create(VALUE module, linear_ring_type, NULL, &state); + if (state || !interior_geom) { + break; + } if (interior_geom) { interior_geoms[actual_len++] = interior_geom; } - if (state) { - break; - } } if (len == actual_len) { polygon =