From 30ee6064f9254faba6ba58e1f01078d3066a8643 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Fri, 10 Sep 2021 20:17:33 +0100 Subject: [PATCH] trivial: Fix a small memory leak when processing recommends --- src/fu-engine.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/fu-engine.c b/src/fu-engine.c index cbadfeb27..b81f7917e 100644 --- a/src/fu-engine.c +++ b/src/fu-engine.c @@ -1709,7 +1709,8 @@ fu_engine_check_requirements(FuEngine *self, { FuDevice *device = fu_install_task_get_device(task); g_autoptr(GError) error_local = NULL; - g_autoptr(GPtrArray) reqs = NULL; + g_autoptr(GPtrArray) reqs_hard = NULL; + g_autoptr(GPtrArray) reqs_soft = NULL; /* all install task checks require a device */ if (device != NULL) { @@ -1718,10 +1719,11 @@ fu_engine_check_requirements(FuEngine *self, } /* do engine checks */ - reqs = xb_node_query(fu_install_task_get_component(task), "requires/*", 0, &error_local); - if (reqs != NULL) { - for (guint i = 0; i < reqs->len; i++) { - XbNode *req = g_ptr_array_index(reqs, i); + reqs_hard = + xb_node_query(fu_install_task_get_component(task), "requires/*", 0, &error_local); + if (reqs_hard != NULL) { + for (guint i = 0; i < reqs_hard->len; i++) { + XbNode *req = g_ptr_array_index(reqs_hard, i); if (!fu_engine_check_requirement(self, request, req, device, flags, error)) return FALSE; } @@ -1733,13 +1735,13 @@ fu_engine_check_requirements(FuEngine *self, /* soft requirements */ g_clear_error(&error_local); - reqs = xb_node_query(fu_install_task_get_component(task), - "suggests/*|recommends/*", - 0, - &error_local); - if (reqs != NULL) { - for (guint i = 0; i < reqs->len; i++) { - XbNode *req = g_ptr_array_index(reqs, i); + reqs_soft = xb_node_query(fu_install_task_get_component(task), + "suggests/*|recommends/*", + 0, + &error_local); + if (reqs_soft != NULL) { + for (guint i = 0; i < reqs_soft->len; i++) { + XbNode *req = g_ptr_array_index(reqs_soft, i); if (!fu_engine_check_soft_requirement(self, request, req,