Issue #14761: Fix potential leak on an error case in the import machinery.
diff --git a/Misc/ACKS b/Misc/ACKS
index bf686f4..2fb3382 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -127,6 +127,7 @@
Brett Cannon
Mike Carlton
Terry Carroll
+Damien Cassou
Lorenzo M. Catucci
Donn Cave
Charles Cazabon
diff --git a/Misc/NEWS b/Misc/NEWS
index 1ac29ff..29e6dad 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,8 @@
Core and Builtins
-----------------
+- Issue #14761: Fix potential leak on an error case in the import machinery.
+
- Issue #14699: Fix calling the classmethod descriptor directly.
- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
diff --git a/Python/import.c b/Python/import.c
index 108a1e1..2f11e75 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -998,7 +998,7 @@
FILE *fpc;
char *buf;
char *cpathname;
- PyCodeObject *co;
+ PyCodeObject *co = NULL;
PyObject *m;
if (fstat(fileno(fp), &st) != 0) {
@@ -1054,6 +1054,7 @@
return m;
error_exit:
+ Py_XDECREF(co);
PyMem_FREE(buf);
return NULL;
}