From 4dff665e8b67a1eccec327993cf6ae736d02f33a Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Sun, 28 Feb 2016 23:46:41 +0000 Subject: [PATCH] #3479, error out if kmeans has k > ngeoms git-svn-id: http://svn.osgeo.org/postgis/trunk@14719 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/kmeans.c | 1 + liblwgeom/lwkmeans.c | 5 +++++ postgis/lwgeom_window.c | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/liblwgeom/kmeans.c b/liblwgeom/kmeans.c index 8ec25112b..4d4c70eae 100644 --- a/liblwgeom/kmeans.c +++ b/liblwgeom/kmeans.c @@ -260,6 +260,7 @@ kmeans(kmeans_config *config) assert(config->centers); assert(config->k); assert(config->clusters); + assert(config->k < config->num_objs); /* Zero out cluster numbers, just in case user forgets */ memset(config->clusters, 0, clusters_sz); diff --git a/liblwgeom/lwkmeans.c b/liblwgeom/lwkmeans.c index 10a7d2ad5..70b7005bb 100644 --- a/liblwgeom/lwkmeans.c +++ b/liblwgeom/lwkmeans.c @@ -90,6 +90,11 @@ lwgeom_cluster_2d_kmeans(const LWGEOM **geoms, int ngeoms, int k) assert(k>0); assert(ngeoms>0); assert(geoms); + + if (ngeoms