Issue #14084: Fix a file descriptor leak when importing a module with a bad encoding.
diff --git a/Python/import.c b/Python/import.c
index e5581c5..f443ab8 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -3195,8 +3195,10 @@
memory. */
found_encoding = PyTokenizer_FindEncoding(fd);
lseek(fd, 0, 0); /* Reset position */
- if (found_encoding == NULL && PyErr_Occurred())
+ if (found_encoding == NULL && PyErr_Occurred()) {
+ close(fd);
return NULL;
+ }
encoding = (found_encoding != NULL) ? found_encoding :
(char*)PyUnicode_GetDefaultEncoding();
}