Fix a memory leak in get_best_solution()

Resolves: RHEL-26226
This commit is contained in:
Petr Písař 2024-04-17 09:27:28 +02:00
parent dec77ba440
commit 8b5fc624b3
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,37 @@
From c91ed331cc9ea6512a7aaad918db1be9bc6d4f69 Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
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ř <ppisar@redhat.com>
---
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

View File

@ -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 <ppisar@redhat.com> - 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 <ppisar@redhat.com> - 0.69.0-8
- Set default SELinux labels on GnuPG directories (RHEL-11238)