Check error when calling PyUnicode_AppendAndDel()

This commit is contained in:
Victor Stinner 2011-10-02 20:35:10 +02:00
parent 1a15aba71d
commit 67002af323
2 changed files with 7 additions and 5 deletions

View file

@ -944,9 +944,9 @@ void _ctypes_extend_error(PyObject *exc_class, char *fmt, ...)
else { else {
PyErr_Clear(); PyErr_Clear();
PyUnicode_AppendAndDel(&s, PyUnicode_FromString("???")); PyUnicode_AppendAndDel(&s, PyUnicode_FromString("???"));
if (s == NULL)
goto error;
} }
if (s == NULL)
goto error;
PyErr_SetObject(exc_class, s); PyErr_SetObject(exc_class, s);
error: error:
Py_XDECREF(tp); Py_XDECREF(tp);

View file

@ -187,7 +187,7 @@ dl_funcptr _PyImport_GetDynLoadWindows(const char *shortname,
HINSTANCE hDLL = NULL; HINSTANCE hDLL = NULL;
unsigned int old_mode; unsigned int old_mode;
ULONG_PTR cookie = 0; ULONG_PTR cookie = 0;
/* Don't display a message box when Python can't load a DLL */ /* Don't display a message box when Python can't load a DLL */
old_mode = SetErrorMode(SEM_FAILCRITICALERRORS); old_mode = SetErrorMode(SEM_FAILCRITICALERRORS);
@ -248,8 +248,10 @@ dl_funcptr _PyImport_GetDynLoadWindows(const char *shortname,
theInfo, theInfo,
theLength)); theLength));
} }
PyErr_SetObject(PyExc_ImportError, message); if (message != NULL) {
Py_XDECREF(message); PyErr_SetObject(PyExc_ImportError, message);
Py_DECREF(message);
}
return NULL; return NULL;
} else { } else {
char buffer[256]; char buffer[256];