From b8cd10bfcac920119d0e8d298d07d9e3c8fb555e Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 3 May 2010 16:35:08 +0000 Subject: [PATCH] ST_MakeValid: Early fail if an unsupported type is given git-svn-id: http://svn.osgeo.org/postgis/trunk@5604 b70326c6-7e19-0410-871a-916f4a2858ee --- postgis/lwgeom_geos_clean.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/postgis/lwgeom_geos_clean.c b/postgis/lwgeom_geos_clean.c index 982fa9c5b..94b8d085b 100644 --- a/postgis/lwgeom_geos_clean.c +++ b/postgis/lwgeom_geos_clean.c @@ -994,6 +994,21 @@ Datum ST_MakeValid(PG_FUNCTION_ARGS) in = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); lwgeom_in = lwgeom_deserialize(SERIALIZED_FORM(in)); + switch ( TYPE_GETTYPE(lwgeom_in->type) ) + { + case GEOS_LINESTRING: + case GEOS_POLYGON: + case GEOS_MULTILINESTRING: + case GEOS_MULTIPOLYGON: + break; + + default: + lwerror("ST_MakeValid: unsupported geometry type %s", + lwtype_name(TYPE_GETTYPE(lwgeom_in->type))); + PG_RETURN_NULL(); + break; + } + lwgeom_out = lwgeom_make_valid(lwgeom_in); if ( ! lwgeom_out ) { PG_FREE_IF_COPY(in, 0); -- 2.40.0