This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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),


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]