This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster: RHEL5 - rgmanager: Fix small memory leak
- From: Lon Hohberger <lon at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Mon, 22 Jun 2009 18:23:34 +0000 (UTC)
- Subject: cluster: RHEL5 - rgmanager: Fix small memory leak
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=09b0c9418c4d8165e897e6a3d2e8fac17d7de046
Commit: 09b0c9418c4d8165e897e6a3d2e8fac17d7de046
Parent: c2600ba9290b8e3d35f4a8d0fb0d2c01c71a6021
Author: Lon Hohberger <lhh@redhat.com>
AuthorDate: Fri Jun 19 22:59:53 2009 -0400
Committer: Lon Hohberger <lhh@redhat.com>
CommitterDate: Mon Jun 22 14:16:42 2009 -0400
rgmanager: Fix small memory leak
Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
rgmanager/src/daemons/slang_event.c | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/rgmanager/src/daemons/slang_event.c b/rgmanager/src/daemons/slang_event.c
index c3c337c..4f52041 100644
--- a/rgmanager/src/daemons/slang_event.c
+++ b/rgmanager/src/daemons/slang_event.c
@@ -440,16 +440,23 @@ out:
/**
get_service_property(service_name, property)
*/
-char *
+static void
sl_service_property(char *svcName, char *prop)
{
char buf[96];
+ char *ret;
if (get_service_property(svcName, prop, buf, sizeof(buf)) < 0)
- return NULL;
+ return;
/* does this work or do I have to push a malloce'd string? */
- return strdup(buf);
+ ret = strdup(buf);
+ if (SLang_push_malloced_string(ret) < 0) {
+ SLang_verror(SL_RunTime_Error,
+ (char *)"%s: Failed to push %s property of %s",
+ __FUNCTION__, prop, svcName);
+ free(ret);
+ }
}
@@ -979,6 +986,7 @@ sl_die(void)
SLang_Intrin_Fun_Type rgmanager_slang[] =
{
+<<<<<<< HEAD:rgmanager/src/daemons/slang_event.c
MAKE_INTRINSIC_0("nodes_online", sl_nodes_online, SLANG_VOID_TYPE),
MAKE_INTRINSIC_0("service_list", sl_service_list, SLANG_VOID_TYPE),
@@ -988,6 +996,21 @@ SLang_Intrin_Fun_Type rgmanager_slang[] =
MAKE_INTRINSIC_0("service_stop", sl_stop_service, SLANG_INT_TYPE),
MAKE_INTRINSIC_0("service_start", sl_start_service, SLANG_INT_TYPE),
MAKE_INTRINSIC_S("service_status", sl_service_status,
+=======
+ MAKE_INTRINSIC_0((char *)"nodes_online", sl_nodes_online,
+ SLANG_VOID_TYPE),
+ MAKE_INTRINSIC_0((char *)"service_list", sl_service_list,
+ SLANG_VOID_TYPE),
+ MAKE_INTRINSIC_SS((char *)"service_property", sl_service_property,
+ SLANG_VOID_TYPE),
+ MAKE_INTRINSIC_S((char *)"service_domain_info", sl_domain_info,
+ SLANG_VOID_TYPE),
+ MAKE_INTRINSIC_0((char *)"service_stop", sl_stop_service,
+ SLANG_INT_TYPE),
+ MAKE_INTRINSIC_0((char *)"service_start", sl_start_service,
+ SLANG_INT_TYPE),
+ MAKE_INTRINSIC_S((char *)"service_status", sl_service_status,
+>>>>>>> f4f9663... rgmanager: Fix small memory leak:rgmanager/src/daemons/slang_event.c
SLANG_VOID_TYPE),
MAKE_INTRINSIC_S("service_freeze", sl_service_freeze,
SLANG_INT_TYPE),