Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.6:Update
pacemaker
pacemaker#3380-0001-Low-libcrmcommon-Free-text-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker#3380-0001-Low-libcrmcommon-Free-text-curses-private-list-data.patch of Package pacemaker
From 8792c1f59fe9ac41dbd621b47e488f0ec9f612dc Mon Sep 17 00:00:00 2001 From: Chris Lumens <clumens@redhat.com> Date: Thu, 29 Feb 2024 16:29:02 -0500 Subject: [PATCH 1/3] Low: libcrmcommon: Free text/curses private list data. Whenever we're done with the private list data in the text and curses formatters, make sure to clean it up. Typically, this should just be when end_list is called. However, if for some reason the program ends before everything that was pushed into the queue is popped with end_list, also clean up there too. Ref T704 --- lib/common/output_text.c | 12 ++++++++++-- tools/crm_mon_curses.c | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) Index: pacemaker-2.1.7+20231219.0f7f88312/lib/common/output_text.c =================================================================== --- pacemaker-2.1.7+20231219.0f7f88312.orig/lib/common/output_text.c +++ pacemaker-2.1.7+20231219.0f7f88312/lib/common/output_text.c @@ -36,6 +36,14 @@ typedef struct private_data_s { } private_data_t; static void +free_list_data(gpointer data) { + text_list_data_t *list_data = data; + + free(list_data->singular_noun); + free(list_data->plural_noun); +} + +static void text_free_priv(pcmk__output_t *out) { private_data_t *priv = NULL; @@ -45,7 +53,7 @@ text_free_priv(pcmk__output_t *out) { priv = out->priv; - g_queue_free(priv->parent_q); + g_queue_free_full(priv->parent_q, free_list_data); free(priv); out->priv = NULL; } @@ -269,7 +277,7 @@ text_end_list(pcmk__output_t *out) { } } - free(node); + free_list_data(node); } static bool Index: pacemaker-2.1.7+20231219.0f7f88312/tools/crm_mon_curses.c =================================================================== --- pacemaker-2.1.7+20231219.0f7f88312.orig/tools/crm_mon_curses.c +++ pacemaker-2.1.7+20231219.0f7f88312/tools/crm_mon_curses.c @@ -39,6 +39,14 @@ typedef struct private_data_s { } private_data_t; static void +free_list_data(gpointer data) { + curses_list_data_t *list_data = data; + + free(list_data->singular_noun); + free(list_data->plural_noun); +} + +static void curses_free_priv(pcmk__output_t *out) { private_data_t *priv = NULL; @@ -48,7 +56,7 @@ curses_free_priv(pcmk__output_t *out) { priv = out->priv; - g_queue_free(priv->parent_q); + g_queue_free_full(priv->parent_q, free_list_data); free(priv); out->priv = NULL; } @@ -262,7 +270,7 @@ curses_end_list(pcmk__output_t *out) { } } - free(node); + free_list_data(node); } static bool
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor