From ac63bdf4b5b05bad8e2865061317ef1f09ef7409 Mon Sep 17 00:00:00 2001 From: monadchains Date: Sun, 19 Jul 2026 13:47:58 +0200 Subject: [PATCH 1/3] fix leak --- Modules/_sqlite/connection.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 892740b05e55c98..25fa2129842851d 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -1758,6 +1758,7 @@ pysqlite_connection_load_extension_impl(pysqlite_Connection *self, rc = sqlite3_load_extension(self->db, extension_name, entrypoint, &errmsg); if (rc != 0) { PyErr_SetString(self->OperationalError, errmsg); + sqlite3_free((void *)errmsg); return NULL; } else { Py_RETURN_NONE; From fe881a6e9d08c774a6b452c844a8aa51c7550e04 Mon Sep 17 00:00:00 2001 From: monadchains Date: Sun, 19 Jul 2026 14:01:08 +0200 Subject: [PATCH 2/3] add news --- .../Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst diff --git a/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst b/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst new file mode 100644 index 000000000000000..354fcf7a635f748 --- /dev/null +++ b/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst @@ -0,0 +1,2 @@ +Fix memory leak in sqlite3.Connection.load_extension() when error is +returned From e43572ba0bfabb2a9737b05afce7602b9cb60af6 Mon Sep 17 00:00:00 2001 From: monadchains Date: Sun, 19 Jul 2026 15:53:19 +0200 Subject: [PATCH 3/3] update blurb --- .../next/Library/2026-07-19-15-53-06.gh-issue-154109.uPm_M0.rst | 2 ++ .../Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2026-07-19-15-53-06.gh-issue-154109.uPm_M0.rst delete mode 100644 Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst diff --git a/Misc/NEWS.d/next/Library/2026-07-19-15-53-06.gh-issue-154109.uPm_M0.rst b/Misc/NEWS.d/next/Library/2026-07-19-15-53-06.gh-issue-154109.uPm_M0.rst new file mode 100644 index 000000000000000..a566068795356d7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-07-19-15-53-06.gh-issue-154109.uPm_M0.rst @@ -0,0 +1,2 @@ +Fix memory leak in :meth:`sqlite3.Connection.load_extension` when +:exc:`sqlite3.OperationalError` is raised. diff --git a/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst b/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst deleted file mode 100644 index 354fcf7a635f748..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-07-19-14-00-59.gh-issue-154109.Dt-0Pc.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix memory leak in sqlite3.Connection.load_extension() when error is -returned