Merge branch 'Python-coverity'
* Python-coverity:
Fix possible refleaks.
Check Py{Bytes,String}_AsStringAndSize() for failure
This commit is contained in:
commit
10cbc9481f
2 changed files with 9 additions and 5 deletions
|
|
@ -43,9 +43,11 @@ SWIG_Python_str_AsChar(PyObject *str)
|
||||||
if (str) {
|
if (str) {
|
||||||
char *cstr;
|
char *cstr;
|
||||||
Py_ssize_t len;
|
Py_ssize_t len;
|
||||||
PyBytes_AsStringAndSize(str, &cstr, &len);
|
if (PyBytes_AsStringAndSize(str, &cstr, &len) != -1) {
|
||||||
newstr = (char *) malloc(len+1);
|
newstr = (char *) malloc(len+1);
|
||||||
memcpy(newstr, cstr, len+1);
|
if (newstr)
|
||||||
|
memcpy(newstr, cstr, len+1);
|
||||||
|
}
|
||||||
Py_XDECREF(str);
|
Py_XDECREF(str);
|
||||||
}
|
}
|
||||||
return newstr;
|
return newstr;
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,11 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
|
||||||
if (alloc)
|
if (alloc)
|
||||||
*alloc = SWIG_NEWOBJ;
|
*alloc = SWIG_NEWOBJ;
|
||||||
%#endif
|
%#endif
|
||||||
PyBytes_AsStringAndSize(obj, &cstr, &len);
|
if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1)
|
||||||
|
return SWIG_TypeError;
|
||||||
%#else
|
%#else
|
||||||
PyString_AsStringAndSize(obj, &cstr, &len);
|
if (PyString_AsStringAndSize(obj, &cstr, &len) == -1)
|
||||||
|
return SWIG_TypeError;
|
||||||
%#endif
|
%#endif
|
||||||
if (cptr) {
|
if (cptr) {
|
||||||
if (alloc) {
|
if (alloc) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue