Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=078... Commit: 07891324276c5414e6000b50bccafe9235bd4a4a Parent: 9b5d039ecab105db426b112e865be59feb41a592 Author: Lon Hohberger lhh@redhat.com AuthorDate: Thu Jan 5 10:12:05 2012 -0500 Committer: Lon Hohberger lhh@redhat.com CommitterDate: Thu Jan 5 10:56:37 2012 -0500
rgmanager: Fix tiny memory leak in sl_service_status
Resolves: rhbz#743214
Signed-off-by: Lon Hohberger lhh@redhat.com --- rgmanager/src/daemons/slang_event.c | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/rgmanager/src/daemons/slang_event.c b/rgmanager/src/daemons/slang_event.c index c9cca7a..b033656 100644 --- a/rgmanager/src/daemons/slang_event.c +++ b/rgmanager/src/daemons/slang_event.c @@ -234,7 +234,8 @@ get_service_state_internal(char *svcName, rg_state_t *svcStatus) service_status(servicename)
For extra information (flags, transition time) - (transition_time, flags, rte, restarts, owner, state) = + (transition_time, flags, rte, restarts, last_owner, + owner, state) = service_status(servicename, 1); */ static void @@ -298,7 +299,7 @@ sl_service_status(void) "%s: Failed to get status for %s", __FUNCTION__, svcName); - return; + goto out_free; }
if (extra) { @@ -310,7 +311,7 @@ sl_service_status(void) (char *)"%s: Failed to push mtime %s", __FUNCTION__, svcName); - return; + goto out_free; }
flags = (int)svcStatus.rs_flags; @@ -319,7 +320,7 @@ sl_service_status(void) (char *)"%s: Failed to push flags %s", __FUNCTION__, svcName); - return; + goto out_free; } }
@@ -329,7 +330,7 @@ sl_service_status(void) "%s: Failed to push restarts_exceeded %s", __FUNCTION__, svcName); - return; + goto out_free; }
if (SLang_push_integer(svcStatus.rs_restarts) < 0) { @@ -337,7 +338,7 @@ sl_service_status(void) "%s: Failed to push restarts for %s", __FUNCTION__, svcName); - return; + goto out_free; }
if (SLang_push_integer(svcStatus.rs_last_owner) < 0) { @@ -345,7 +346,7 @@ sl_service_status(void) "%s: Failed to push last owner of %s", __FUNCTION__, svcName); - return; + goto out_free; }
switch(svcStatus.rs_state) { @@ -363,7 +364,7 @@ sl_service_status(void) "%s: Failed to push owner of %s", __FUNCTION__, svcName); - return; + goto out_free; }
if (svcStatus.rs_flags & RG_FLAG_FROZEN) { @@ -379,7 +380,7 @@ sl_service_status(void) "%s: Failed to duplicate state of %s", __FUNCTION__, svcName); - return; + goto out_free; }
if (SLang_push_malloced_string(state_str) < 0) { @@ -389,6 +390,10 @@ sl_service_status(void) svcName); free(state_str); } + +out_free: + if (svcName) + free(svcName); }
cluster-commits@lists.fedorahosted.org