Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
pacemaker.29826
bsc#1207319-0001-Refactor-libpacemaker-unify-ba...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bsc#1207319-0001-Refactor-libpacemaker-unify-bailing-out-in-pcmk__inj.patch of Package pacemaker.29826
From 7e8c700c9b1bd39c98186dbd70ca8bbeba56eb1c Mon Sep 17 00:00:00 2001 From: "Gao,Yan" <ygao@suse.com> Date: Wed, 25 Jan 2023 11:03:07 +0100 Subject: [PATCH 1/2] Refactor: libpacemaker: unify bailing out in pcmk__inject_node() For further reuse. --- lib/pacemaker/pcmk_sched_transition.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) Index: pacemaker-2.1.2+20211124.ada5c3b36/lib/pacemaker/pcmk_sched_transition.c =================================================================== --- pacemaker-2.1.2+20211124.ada5c3b36.orig/lib/pacemaker/pcmk_sched_transition.c +++ pacemaker-2.1.2+20211124.ada5c3b36/lib/pacemaker/pcmk_sched_transition.c @@ -157,6 +157,7 @@ inject_node_state(cib_t * cib_conn, cons int rc = pcmk_ok; xmlNode *cib_object = NULL; char *xpath = crm_strdup_printf(NODE_TEMPLATE, node); + bool duplicate = false; if (bringing_nodes_online) { create_node_entry(cib_conn, node); @@ -167,10 +168,8 @@ inject_node_state(cib_t * cib_conn, cons if (cib_object && ID(cib_object) == NULL) { crm_err("Detected multiple node_state entries for xpath=%s, bailing", xpath); - crm_log_xml_warn(cib_object, "Duplicates"); - free(xpath); - crm_exit(CRM_EX_SOFTWARE); - return NULL; // not reached, but makes static analysis happy + duplicate = true; + goto done; } if (rc == -ENXIO) { @@ -195,7 +194,15 @@ inject_node_state(cib_t * cib_conn, cons crm_trace("injecting node state for %s. rc is %d", node, rc); } +done: free(xpath); + + if (duplicate) { + crm_log_xml_warn(cib_object, "Duplicates"); + crm_exit(CRM_EX_SOFTWARE); + return NULL; // not reached, but makes static analysis happy + } + CRM_ASSERT(rc == pcmk_ok); return cib_object; }
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