bpo-38823: Clean up refleaks in _tkinter initialization. (GH-17206)
https://bugs.python.org/issue38823
(cherry picked from commit 289cf0fbf78c4f38c38ac71ac8b772be7ec2672f)
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index b622c15..a1071e5 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -3549,11 +3549,13 @@
if (!ret && GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
str_path = _get_tcl_lib_path();
if (str_path == NULL && PyErr_Occurred()) {
+ Py_DECREF(m);
return NULL;
}
if (str_path != NULL) {
wcs_path = PyUnicode_AsWideCharString(str_path, NULL);
if (wcs_path == NULL) {
+ Py_DECREF(m);
return NULL;
}
SetEnvironmentVariableW(L"TCL_LIBRARY", wcs_path);