Check error when calling PyUnicode_AppendAndDel()
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 5a5ce31..60d59c8 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -944,9 +944,9 @@
else {
PyErr_Clear();
PyUnicode_AppendAndDel(&s, PyUnicode_FromString("???"));
- if (s == NULL)
- goto error;
}
+ if (s == NULL)
+ goto error;
PyErr_SetObject(exc_class, s);
error:
Py_XDECREF(tp);
diff --git a/Python/dynload_win.c b/Python/dynload_win.c
index 932a637..c620e58 100644
--- a/Python/dynload_win.c
+++ b/Python/dynload_win.c
@@ -187,7 +187,7 @@
HINSTANCE hDLL = NULL;
unsigned int old_mode;
ULONG_PTR cookie = 0;
-
+
/* Don't display a message box when Python can't load a DLL */
old_mode = SetErrorMode(SEM_FAILCRITICALERRORS);
@@ -248,8 +248,10 @@
theInfo,
theLength));
}
- PyErr_SetObject(PyExc_ImportError, message);
- Py_XDECREF(message);
+ if (message != NULL) {
+ PyErr_SetObject(PyExc_ImportError, message);
+ Py_DECREF(message);
+ }
return NULL;
} else {
char buffer[256];