commit 2396f7c7ab365b94e4ac3b79234771fd02922eb6
parent 3bc3487ebd717b1bddd90babeae5de74adc18b85
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Sun, 18 Apr 2021 21:59:59 +0200
sgs_geometry_box_create
Check the submitted arguments
Diffstat:
1 file changed, 21 insertions(+), 0 deletions(-)
diff --git a/src/sgs_geometry.c b/src/sgs_geometry.c
@@ -46,6 +46,22 @@ struct sgs_geometry {
/*******************************************************************************
* Helper functions
******************************************************************************/
+static int
+check_box_args(struct sgs* sgs, const struct sgs_geometry_box_args* args)
+{
+ ASSERT(args);
+ if(args->lower[0] >= args->upper[0]
+ || args->lower[1] >= args->upper[1]
+ || args->lower[2] >= args->upper[2]) {
+ sgs_log_err(sgs,
+ "Invalid box definition (lower: %g,%g,%g; upper(%g, %g, %g)\n",
+ SPLIT3(args->lower),
+ SPLIT3(args->upper));
+ return 0;
+ }
+ return 1;
+}
+
static res_T
geometry_create
(struct sgs* sgs,
@@ -260,6 +276,11 @@ sgs_geometry_box_create
res_T res = RES_OK;
ASSERT(sgs && args && out_geom);
+ if(!check_box_args(sgs, args)) {
+ res = RES_BAD_ARG;
+ goto error;
+ }
+
res = geometry_create(sgs, &geom);
if(res != RES_OK) goto error;
res = setup_box_mesh(geom, args);