Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 06ea41adb746746e67fb489405e46cd6f9c257d8
Parent: 3e03a4a55527718f200f57bec6766e5f3d2ac8a5
Author: Lon Hohberger <lhh(a)redhat.com>
AuthorDate: Tue Mar 30 12:49:17 2010 -0400
Committer: Lon Hohberger <lhh(a)redhat.com>
CommitterDate: Tue Mar 30 12:50:01 2010 -0400
rgmanager: Fix memory leaks during relocation
Resolves: bz#578249
Signed-off-by: Lon Hohberger <lhh(a)redhat.com>
---
rgmanager/src/daemons/rg_state.c | 2 ++
rgmanager/src/daemons/rg_thread.c | 4 +++-
2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/rgmanager/src/daemons/rg_state.c b/rgmanager/src/daemons/rg_state.c
index d9f02b3..79ff59a 100644
--- a/rgmanager/src/daemons/rg_state.c
+++ b/rgmanager/src/daemons/rg_state.c
@@ -1745,6 +1745,7 @@ handle_relocate_req(char *svcName, int orig_request, int
preferred_target,
*/
if (svc_start(svcName, RG_START) == 0) {
*new_owner = me;
+ free_member_list(backup);
return 0;
}
} else if (target == preferred_target) {
@@ -1757,6 +1758,7 @@ handle_relocate_req(char *svcName, int orig_request, int
preferred_target,
/*
* Great! We're done...
*/
+ free_member_list(backup);
return 0;
}
diff --git a/rgmanager/src/daemons/rg_thread.c b/rgmanager/src/daemons/rg_thread.c
index 517f8fe..446f2d2 100644
--- a/rgmanager/src/daemons/rg_thread.c
+++ b/rgmanager/src/daemons/rg_thread.c
@@ -701,6 +701,7 @@ rt_enqueue_request(const char *resgroupname, int request,
}
if (resgroup->rt_request == RG_RELOCATE) {
+ ret = -1;
switch(request) {
case RG_RELOCATE:
case RG_START_REMOTE:
@@ -711,13 +712,14 @@ rt_enqueue_request(const char *resgroupname, int request,
request, 0);
msg_close(response_ctx);
msg_free_ctx(response_ctx);
+ ret = 0;
break;
}
fprintf(stderr, "Failed to queue request: Would block\n");
/* EWOULDBLOCK */
pthread_mutex_unlock(resgroup->rt_queue_mutex);
pthread_mutex_unlock(&reslist_mutex);
- return 0;
+ return ret;
}
ret = rq_queue_request(resgroup->rt_queue, resgroup->rt_name,