cluster: RHEL6 - rgmanager: Fix tiny memory leak in sl_service_status
Lon Hohberger
lon at fedoraproject.org
Wed Feb 22 14:46:46 UTC 2012
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=2543119ffd1ee25ff8e6f205f696f1f53a5292cf
Commit: 2543119ffd1ee25ff8e6f205f696f1f53a5292cf
Parent: 2353fc5a8b4f590d97e10e0c6cd2c91506eb853a
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Thu Jan 5 10:12:05 2012 -0500
Committer: Lon Hohberger <lhh at redhat.com>
CommitterDate: Tue Feb 21 13:33:45 2012 -0500
rgmanager: Fix tiny memory leak in sl_service_status
Resolves: rhbz#743218
Signed-off-by: Lon Hohberger <lhh at 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 c302de5..45110a3 100644
--- a/rgmanager/src/daemons/slang_event.c
+++ b/rgmanager/src/daemons/slang_event.c
@@ -209,7 +209,8 @@ get_service_state_internal(const 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
@@ -273,7 +274,7 @@ sl_service_status(void)
(char *)"%s: Failed to get status for %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
if (extra) {
@@ -285,7 +286,7 @@ sl_service_status(void)
(char *)"%s: Failed to push mtime %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
flags = (int)svcStatus.rs_flags;
@@ -294,7 +295,7 @@ sl_service_status(void)
(char *)"%s: Failed to push flags %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
}
@@ -304,7 +305,7 @@ sl_service_status(void)
(char *)"%s: Failed to push restarts_exceeded %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
if (SLang_push_integer(svcStatus.rs_restarts) < 0) {
@@ -312,7 +313,7 @@ sl_service_status(void)
(char *)"%s: Failed to push restarts for %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
if (SLang_push_integer(svcStatus.rs_last_owner) < 0) {
@@ -320,7 +321,7 @@ sl_service_status(void)
(char *)"%s: Failed to push last owner of %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
switch(svcStatus.rs_state) {
@@ -338,7 +339,7 @@ sl_service_status(void)
(char *)"%s: Failed to push owner of %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
if (svcStatus.rs_flags & RG_FLAG_FROZEN) {
@@ -354,7 +355,7 @@ sl_service_status(void)
(char *)"%s: Failed to duplicate state of %s",
__FUNCTION__,
svcName);
- return;
+ goto out_free;
}
if (SLang_push_malloced_string(state_str) < 0) {
@@ -364,6 +365,10 @@ sl_service_status(void)
svcName);
free(state_str);
}
+
+out_free:
+ if (svcName)
+ free(svcName);
}
More information about the cluster-commits
mailing list