diff --git a/Lib/python/pyhead.swg b/Lib/python/pyhead.swg index c820f9016..da8207ad7 100644 --- a/Lib/python/pyhead.swg +++ b/Lib/python/pyhead.swg @@ -43,8 +43,11 @@ SWIG_Python_str_AsChar(PyObject *str) if (str) { char *cstr; Py_ssize_t len; - PyBytes_AsStringAndSize(str, &cstr, &len); + if (PyBytes_AsStringAndSize(str, &cstr, &len) == -1) + return NULL; newstr = (char *) malloc(len+1); + if (!newstr) + return NULL; memcpy(newstr, cstr, len+1); Py_XDECREF(str); } diff --git a/Lib/python/pystrings.swg b/Lib/python/pystrings.swg index 93f48acfa..64ed685e8 100644 --- a/Lib/python/pystrings.swg +++ b/Lib/python/pystrings.swg @@ -32,9 +32,11 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) if (alloc) *alloc = SWIG_NEWOBJ; %#endif - PyBytes_AsStringAndSize(obj, &cstr, &len); + if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1) + return SWIG_TypeError; %#else - PyString_AsStringAndSize(obj, &cstr, &len); + if (PyString_AsStringAndSize(obj, &cstr, &len) == -1) + return SWIG_TypeError; %#endif if (cptr) { if (alloc) {