File pacemaker-te-dont-bump-counters-action-synapse-invalid.patch of Package pacemaker.14737
commit 7cb793ae50d7d35341d9987703549da7dc3ec43f
Author: Igor Tsiglyar <igor_tsiglyar@outlook.com>
Date: Wed Mar 1 19:22:47 2017 +0300
Fix: TE: don't bump counters when action or synapse is invalid
Index: pacemaker-1.1.16+20170320.77ea74d/lib/transition/unpack.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/lib/transition/unpack.c
+++ pacemaker-1.1.16+20170320.77ea74d/lib/transition/unpack.c
@@ -109,10 +109,11 @@ unpack_synapse(crm_graph_t * new_graph,
new_synapse->priority = crm_parse_int(value, NULL);
}
- new_graph->num_synapses++;
CRM_CHECK(new_synapse->id >= 0, free(new_synapse);
return NULL);
+ new_graph->num_synapses++;
+
crm_trace("look for actions in synapse %s", crm_element_value(xml_synapse, XML_ATTR_ID));
for (action_set = __xml_first_child(xml_synapse); action_set != NULL;
@@ -124,11 +125,12 @@ unpack_synapse(crm_graph_t * new_graph,
action = __xml_next(action)) {
crm_action_t *new_action = unpack_action(new_synapse, action);
- new_graph->num_actions++;
-
if (new_action == NULL) {
continue;
}
+
+ new_graph->num_actions++;
+
crm_trace("Adding action %d to synapse %d", new_action->id, new_synapse->id);
new_synapse->actions = g_list_append(new_synapse->actions, new_action);