File bug-914761_pacemaker-pengine-reschedule-monitor-1.patch of Package pacemaker.9287
commit 3fe884c426521a402129bc9283e7ef41d231e2a3
Author: Gao,Yan <ygao@suse.com>
Date: Thu Feb 26 10:29:40 2015 +0100
Fix: pengine: Resolve memory leaks
diff --git a/pengine/allocate.c b/pengine/allocate.c
index 999b4e6..fc60a5e 100644
--- a/pengine/allocate.c
+++ b/pengine/allocate.c
@@ -283,6 +283,7 @@ check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op
#else
/* Re-sending the recurring op is sufficient - the old one will be cancelled automatically */
set_bit(rsc->flags, pe_rsc_reschedule_monitor);
+ free(key);
#endif
} else if (digest_restart) {
diff --git a/pengine/native.c b/pengine/native.c
index 46cf01e..a6b3aed 100644
--- a/pengine/native.c
+++ b/pengine/native.c
@@ -726,10 +726,10 @@ RecurringOp(resource_t * rsc, action_t * start, node_t * node,
is_optional = FALSE;
pe_rsc_trace(rsc, "Marking %s manditory: not active", key);
- } else if (is_set(rsc->flags, pe_rsc_reschedule_monitor)) {
- is_optional = FALSE;
-
} else {
+ if (is_set(rsc->flags, pe_rsc_reschedule_monitor)) {
+ is_optional = FALSE;
+ }
g_list_free(possible_matches);
}