From 32998ff66ea137d6bb88cf23dfa680c290c997f0 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@uliege.be> Date: Thu, 17 Sep 2020 11:39:50 +0200 Subject: [PATCH] sanity checks for input vectors of pairs --- api/GenApi.py | 6 +++++- api/gmsh.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/api/GenApi.py b/api/GenApi.py index 51d9a9a909..90667ab6bf 100644 --- a/api/GenApi.py +++ b/api/GenApi.py @@ -1166,10 +1166,14 @@ def _ivectordouble(o): def _ivectorpair(o): if use_numpy: array = numpy.ascontiguousarray(o, numpy.int32) + if(len(o) and (array.ndim != 2 or array.shape[1] != 2)): + raise Exception("Invalid data for input vector of pairs") ct = array.ctypes ct.array = array - return ct, c_size_t(len(o) * 2) + return ct, c_size_t(len(o) * 2) else: + if(len(o) and len(o[0]) != 2): + raise Exception("Invalid data for input vector of pairs") return ((c_int * 2) * len(o))(*o), c_size_t(len(o) * 2) def _ivectorstring(o): diff --git a/api/gmsh.py b/api/gmsh.py index e25a820513..f88a06bd6b 100644 --- a/api/gmsh.py +++ b/api/gmsh.py @@ -150,10 +150,14 @@ def _ivectordouble(o): def _ivectorpair(o): if use_numpy: array = numpy.ascontiguousarray(o, numpy.int32) + if(len(o) and (array.ndim != 2 or array.shape[1] != 2)): + raise Exception("Invalid data for input vector of pairs") ct = array.ctypes ct.array = array - return ct, c_size_t(len(o) * 2) + return ct, c_size_t(len(o) * 2) else: + if(len(o) and len(o[0]) != 2): + raise Exception("Invalid data for input vector of pairs") return ((c_int * 2) * len(o))(*o), c_size_t(len(o) * 2) def _ivectorstring(o): -- GitLab