Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
pacemaker.3577
pacemaker-various-issues-valgrind-coverity.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-various-issues-valgrind-coverity.patch of Package pacemaker.3577
commit 344a134bed6113c082e28a73f19e0a0dbff4fa10 Author: Ken Gaillot <kgaillot@redhat.com> Date: Thu Oct 27 15:27:53 2016 -0500 Fix: various: issues discovered via valgrind and coverity - memory leak in crmd/join_dc.c:do_dc_join_ack() - dead code in lib/services/services.c:resources_list_standards() - hidden variables in attrd/commands.c:attrd_peer_update(), fencing/commands.c:handle_request(), pengine/main.c:pe_ipc_dispatch(), lib/cluster/cpg.c:pcmk_message_common_cs(), and lib/pengine/utils.c:resource_location() - unused value in pengine/native.c:RecurringOp() Index: pacemaker/attrd/commands.c =================================================================== --- pacemaker.orig/attrd/commands.c +++ pacemaker/attrd/commands.c @@ -734,16 +734,17 @@ attrd_peer_update(crm_node_t *peer, xmlN } } - /* this only involves cluster nodes. */ - if(v->nodeid == 0 && (v->is_remote == FALSE)) { - if(crm_element_value_int(xml, F_ATTRD_HOST_ID, (int*)&v->nodeid) == 0) { - /* Create the name/id association */ - crm_node_t *peer = crm_get_peer(v->nodeid, host); - crm_trace("We know %s's node id now: %s", peer->uname, peer->uuid); - if(election_state(writer) == election_won) { - write_attributes(FALSE, TRUE); - return; - } + /* If this is a cluster node whose node ID we are learning, remember it */ + if ((v->nodeid == 0) && (v->is_remote == FALSE) + && (crm_element_value_int(xml, F_ATTRD_HOST_ID, (int*)&v->nodeid) == 0)) { + + crm_node_t *known_peer = crm_get_peer(v->nodeid, host); + + crm_trace("We know %s's node id now: %s", + known_peer->uname, known_peer->uuid); + if (election_state(writer) == election_won) { + write_attributes(FALSE, TRUE); + return; } } } Index: pacemaker/crmd/join_dc.c =================================================================== --- pacemaker.orig/crmd/join_dc.c +++ pacemaker/crmd/join_dc.c @@ -523,11 +523,12 @@ do_dc_join_ack(long long action, if (safe_str_eq(join_from, fsa_our_uname)) { xmlNode *now_dc_lrmd_state = do_lrm_query(TRUE, fsa_our_uname); + if (now_dc_lrmd_state != NULL) { crm_debug("LRM state is updated from do_lrm_query.(%s)", join_from); fsa_cib_update(XML_CIB_TAG_STATUS, now_dc_lrmd_state, cib_scope_local | cib_quorum_override | cib_can_create, call_id, NULL); - free(now_dc_lrmd_state); + free_xml(now_dc_lrmd_state); } else { crm_warn("Could not get our LRM state. LRM state is updated from join_ack->xml.(%s)", join_from); fsa_cib_update(XML_CIB_TAG_STATUS, join_ack->xml, Index: pacemaker/fencing/commands.c =================================================================== --- pacemaker.orig/fencing/commands.c +++ pacemaker/fencing/commands.c @@ -2462,12 +2462,12 @@ handle_request(crm_client_t * client, ui rc = stonith_fence_history(request, &data); } else if (crm_str_eq(op, STONITH_OP_DEVICE_ADD, TRUE)) { - const char *id = NULL; + const char *device_id = NULL; xmlNode *notify_data = create_xml_node(NULL, op); - rc = stonith_device_register(request, &id, FALSE); + rc = stonith_device_register(request, &device_id, FALSE); - crm_xml_add(notify_data, F_STONITH_DEVICE, id); + crm_xml_add(notify_data, F_STONITH_DEVICE, device_id); crm_xml_add_int(notify_data, F_STONITH_ACTIVE, g_hash_table_size(device_list)); do_stonith_notify(call_options, op, rc, notify_data); @@ -2475,37 +2475,37 @@ handle_request(crm_client_t * client, ui } else if (crm_str_eq(op, STONITH_OP_DEVICE_DEL, TRUE)) { xmlNode *dev = get_xpath_object("//" F_STONITH_DEVICE, request, LOG_ERR); - const char *id = crm_element_value(dev, XML_ATTR_ID); + const char *device_id = crm_element_value(dev, XML_ATTR_ID); xmlNode *notify_data = create_xml_node(NULL, op); - rc = stonith_device_remove(id, FALSE); + rc = stonith_device_remove(device_id, FALSE); - crm_xml_add(notify_data, F_STONITH_DEVICE, id); + crm_xml_add(notify_data, F_STONITH_DEVICE, device_id); crm_xml_add_int(notify_data, F_STONITH_ACTIVE, g_hash_table_size(device_list)); do_stonith_notify(call_options, op, rc, notify_data); free_xml(notify_data); } else if (crm_str_eq(op, STONITH_OP_LEVEL_ADD, TRUE)) { - char *id = NULL; + char *device_id = NULL; xmlNode *notify_data = create_xml_node(NULL, op); - rc = stonith_level_register(request, &id); + rc = stonith_level_register(request, &device_id); - crm_xml_add(notify_data, F_STONITH_DEVICE, id); + crm_xml_add(notify_data, F_STONITH_DEVICE, device_id); crm_xml_add_int(notify_data, F_STONITH_ACTIVE, g_hash_table_size(topology)); do_stonith_notify(call_options, op, rc, notify_data); free_xml(notify_data); - free(id); + free(device_id); } else if (crm_str_eq(op, STONITH_OP_LEVEL_DEL, TRUE)) { - char *id = NULL; + char *device_id = NULL; xmlNode *notify_data = create_xml_node(NULL, op); - rc = stonith_level_remove(request, &id); + rc = stonith_level_remove(request, &device_id); - crm_xml_add(notify_data, F_STONITH_DEVICE, id); + crm_xml_add(notify_data, F_STONITH_DEVICE, device_id); crm_xml_add_int(notify_data, F_STONITH_ACTIVE, g_hash_table_size(topology)); do_stonith_notify(call_options, op, rc, notify_data); @@ -2523,12 +2523,12 @@ handle_request(crm_client_t * client, ui free_xml(reply); } else if(safe_str_eq(op, CRM_OP_RM_NODE_CACHE)) { - int id = 0; + int node_id = 0; const char *name = NULL; - crm_element_value_int(request, XML_ATTR_ID, &id); + crm_element_value_int(request, XML_ATTR_ID, &node_id); name = crm_element_value(request, XML_ATTR_UNAME); - reap_crm_member(id, name); + reap_crm_member(node_id, name); return pcmk_ok; Index: pacemaker/lib/cluster/cpg.c =================================================================== --- pacemaker.orig/lib/cluster/cpg.c +++ pacemaker/lib/cluster/cpg.c @@ -315,8 +315,7 @@ pcmk_message_common_cs(cpg_handle_t hand goto badmsg; } else if (safe_str_eq("identify", data)) { - int pid = getpid(); - char *pid_s = crm_itoa(pid); + char *pid_s = crm_itoa((int) getpid()); send_cluster_text(crm_class_cluster, pid_s, TRUE, NULL, crm_msg_ais); free(pid_s); Index: pacemaker/lib/pengine/utils.c =================================================================== --- pacemaker.orig/lib/pengine/utils.c +++ pacemaker/lib/pengine/utils.c @@ -1290,18 +1290,18 @@ resource_location(resource_t * rsc, node GListPtr gIter = data_set->nodes; for (; gIter != NULL; gIter = gIter->next) { - node_t *node = (node_t *) gIter->data; + node_t *node_iter = (node_t *) gIter->data; - resource_node_score(rsc, node, score, tag); + resource_node_score(rsc, node_iter, score, tag); } } else { GHashTableIter iter; - node_t *node = NULL; + node_t *node_iter = NULL; g_hash_table_iter_init(&iter, rsc->allowed_nodes); - while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { - resource_node_score(rsc, node, score, tag); + while (g_hash_table_iter_next(&iter, NULL, (void **)&node_iter)) { + resource_node_score(rsc, node_iter, score, tag); } } Index: pacemaker/lib/services/services.c =================================================================== --- pacemaker.orig/lib/services/services.c +++ pacemaker/lib/services/services.c @@ -763,24 +763,20 @@ resources_list_standards(void) #if SUPPORT_SYSTEMD agents = systemd_unit_listall(); -#else - agents = NULL; -#endif - if (agents) { standards = g_list_append(standards, strdup("systemd")); g_list_free_full(agents, free); } -#if SUPPORT_UPSTART - agents = upstart_job_listall(); -#else - agents = NULL; #endif +#if SUPPORT_UPSTART + agents = upstart_job_listall(); if (agents) { standards = g_list_append(standards, strdup("upstart")); g_list_free_full(agents, free); } +#endif + #if SUPPORT_NAGIOS agents = resources_os_list_nagios_agents(); if (agents) { Index: pacemaker/pengine/main.c =================================================================== --- pacemaker.orig/pengine/main.c +++ pacemaker/pengine/main.c @@ -71,9 +71,9 @@ pe_ipc_dispatch(qb_ipcs_connection_t * q crm_ipcs_send_ack(c, id, flags, "ack", __FUNCTION__, __LINE__); if (msg != NULL) { - xmlNode *data = get_message_xml(msg, F_CRM_DATA); + xmlNode *data_xml = get_message_xml(msg, F_CRM_DATA); - process_pe_message(msg, data, c); + process_pe_message(msg, data_xml, c); free_xml(msg); } return 0; Index: pacemaker/pengine/native.c =================================================================== --- pacemaker.orig/pengine/native.c +++ pacemaker/pengine/native.c @@ -737,7 +737,6 @@ RecurringOp(resource_t * rsc, action_t * role2text(rsc->next_role)); free(key); - key = NULL; return; }
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