diff --git a/api/GenApi.py b/api/GenApi.py index e2c2c1ac4d93981690e0dab93e6851103ddf89fe..41dcd1b07ce68ea98916359fe5425dfedbeefe6a 100644 --- a/api/GenApi.py +++ b/api/GenApi.py @@ -908,7 +908,8 @@ template<typename t> {{ *p = (char**){0}Malloc(sizeof(char*) * v.size()); for(size_t i = 0; i < v.size(); ++i){{ - (*p)[i] = strdup(v[i].c_str()); + (*p)[i] = (char*){0}Malloc(sizeof(char) * (v[i].size() + 1)); + strcpy((*p)[i], v[i].c_str()); }} *size = v.size(); }} diff --git a/api/gmsh.h_cwrap b/api/gmsh.h_cwrap index 9186a90a1461211a2bcf963f7cca1dcd955ead32..9bbfb2b6f815ce817546541147a4f40e4bdb753e 100644 --- a/api/gmsh.h_cwrap +++ b/api/gmsh.h_cwrap @@ -72,7 +72,8 @@ namespace gmsh { { *p = (char**)gmshMalloc(sizeof(char*) * v.size()); for(size_t i = 0; i < v.size(); ++i){ - (*p)[i] = strdup(v[i].c_str()); + (*p)[i] = (char*)gmshMalloc(sizeof(char) * (v[i].size() + 1)); + strcpy((*p)[i], v[i].c_str()); } *size = v.size(); } diff --git a/api/gmshc.cpp b/api/gmshc.cpp index 0a58c67be6e2bbb7dc27851fa108df252dbf8a1c..ba94f89242bbeb368fb409c51f77d2d06f3df693 100644 --- a/api/gmshc.cpp +++ b/api/gmshc.cpp @@ -45,7 +45,8 @@ void vectorstring2charptrptr(const std::vector<std::string> &v, char ***p, size_ { *p = (char**)gmshMalloc(sizeof(char*) * v.size()); for(size_t i = 0; i < v.size(); ++i){ - (*p)[i] = strdup(v[i].c_str()); + (*p)[i] = (char*)gmshMalloc(sizeof(char) * (v[i].size() + 1)); + strcpy((*p)[i], v[i].c_str()); } *size = v.size(); }