From 8b5fc624b3f4096f32dd5d94881c3b479cb02cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Wed, 17 Apr 2024 09:27:28 +0200 Subject: [PATCH] Fix a memory leak in get_best_solution() Resolves: RHEL-26226 --- 0010-subject-py-Fix-memory-leak.patch | 37 +++++++++++++++++++++++++++ libdnf.spec | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 0010-subject-py-Fix-memory-leak.patch diff --git a/0010-subject-py-Fix-memory-leak.patch b/0010-subject-py-Fix-memory-leak.patch new file mode 100644 index 0000000..53c47bf --- /dev/null +++ b/0010-subject-py-Fix-memory-leak.patch @@ -0,0 +1,37 @@ +From c91ed331cc9ea6512a7aaad918db1be9bc6d4f69 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Tue, 26 Mar 2024 14:09:47 +0100 +Subject: [PATCH] subject-py: Fix memory leak +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream commit: fd284bda6f7430b2e939f95c6836c972e22a2eb4 + +Posible memory leak was detected in get_best_solution() method. + +Resolves: https://issues.redhat.com/browse/RHEL-26226 +Signed-off-by: Petr Písař +--- + python/hawkey/subject-py.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/python/hawkey/subject-py.cpp b/python/hawkey/subject-py.cpp +index a88d572a..3e1919e7 100644 +--- a/python/hawkey/subject-py.cpp ++++ b/python/hawkey/subject-py.cpp +@@ -361,8 +361,10 @@ get_best_solution(_SubjectObject *self, PyObject *args, PyObject *kwds) + HyNevra nevra{nullptr}; + + UniquePtrPyObject q(get_solution(self, args, kwds, &nevra)); +- if (!q) ++ if (!q) { ++ delete nevra; + return NULL; ++ } + PyObject *ret_dict = PyDict_New(); + PyDict_SetItem(ret_dict, PyString_FromString("query"), q.get()); + if (nevra) { +-- +2.44.0 + diff --git a/libdnf.spec b/libdnf.spec index 739ed2e..4551170 100644 --- a/libdnf.spec +++ b/libdnf.spec @@ -72,6 +72,7 @@ Patch6: 0006-hawkeysubject-get_best_selectors-only-obsol-oflatest.patch Patch7: 0007-Avoid-reinstal-installonly-packages-marked-for-ERASE.patch Patch8: 0008-PGP-Set-a-default-creation-SELinux-labels-on-GnuPG-d.patch Patch9: 0009-Replace-assert-by-map_grow.patch +Patch10: 0010-subject-py-Fix-memory-leak.patch BuildRequires: cmake @@ -324,6 +325,7 @@ popd * Tue Apr 16 2024 Petr Pisar - 0.69.0-9 - Grow memory if applying a query after increasing a number of available packages (RHEL-27657) +- Fix a memory leak in get_best_solution() (RHEL-26226) * Wed Oct 25 2023 Petr Pisar - 0.69.0-8 - Set default SELinux labels on GnuPG directories (RHEL-11238)