From b2d74d14a5649533f91d5665be3b6b9c80f81542 Mon Sep 17 00:00:00 2001 From: LuWu <2398491106@qq.com> Date: Tue, 23 Jul 2024 20:49:12 +0800 Subject: [PATCH] Fix memory leak detected in get_best_solution() method Reference:https://github.com/rpm-software-management/libdnf/commit/fd284bda6f7430b2e939f95c6836c972e22a2eb4 Conflict:no --- backport-subject-py-Fix-memory-leak.patch | 29 +++++++++++++++++++++++ libdnf.spec | 6 ++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 backport-subject-py-Fix-memory-leak.patch diff --git a/backport-subject-py-Fix-memory-leak.patch b/backport-subject-py-Fix-memory-leak.patch new file mode 100644 index 0000000..d85da8d --- /dev/null +++ b/backport-subject-py-Fix-memory-leak.patch @@ -0,0 +1,29 @@ +From fd284bda6f7430b2e939f95c6836c972e22a2eb4 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Tue, 26 Mar 2024 14:09:47 +0100 +Subject: [PATCH 293/300] subject-py: Fix memory leak + +Posible memory leak was detected in get_best_solution() method. +--- + 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.33.0 + diff --git a/libdnf.spec b/libdnf.spec index 8eba668..88df41b 100644 --- a/libdnf.spec +++ b/libdnf.spec @@ -20,7 +20,7 @@ Name: libdnf Version: 0.48.0 -Release: 6 +Release: 7 Summary: Library providing simplified C and Python API to libsolv License: LGPLv2+ URL: https://github.com/rpm-software-management/libdnf @@ -39,6 +39,7 @@ Patch4: add-sw_64-support-for-libdnf.patch %endif Patch6001: backport-Fix-countme-bucket-calculation.patch Patch6002: backport-Fix-up-some-comments-in-addCountmeFlag.patch +Patch6003: backport-subject-py-Fix-memory-leak.patch BuildRequires: cmake gcc gcc-c++ libsolv-devel >= %{libsolv_version} gettext BuildRequires: pkgconfig(librepo) >= %{librepo_version} pkgconfig(check) @@ -219,6 +220,9 @@ popd %endif %changelog +* Tue Jul 23 2024 LuWu <2398491106@qq.com> - 0.48.0-7 +- Fix memory leak detected in get_best_solution() method + * Wed Jul 17 2024 LuWu <2398491106@qq.com> - 0.48.0-6 - Fix countme bucket calculation -- Gitee