rgmanager: master - rgmanager: Fix small memory leak

Lon Hohberger lon@fedoraproject.org
Mon Jun 22 16:55:00 GMT 2009


Gitweb:        http://git.fedorahosted.org/git/rgmanager.git?p=rgmanager.git;a=commitdiff;h=d1b70a1c3e5c6a962061c9f7c181ccecb050d30e
Commit:        d1b70a1c3e5c6a962061c9f7c181ccecb050d30e
Parent:        10f9c02038d1086287f1322287a65101c98828e9
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 12:52:44 2009 -0400

rgmanager: Fix small memory leak

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 rgmanager/src/daemons/slang_event.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/rgmanager/src/daemons/slang_event.c b/rgmanager/src/daemons/slang_event.c
index 1a2b3ac..3f93039 100644
--- a/rgmanager/src/daemons/slang_event.c
+++ b/rgmanager/src/daemons/slang_event.c
@@ -415,16 +415,23 @@ out:
 /**
   get_service_property(service_name, property)
  */
-static 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);
+	}
 }
 
 
@@ -959,7 +966,7 @@ static SLang_Intrin_Fun_Type rgmanager_slang[] =
 	MAKE_INTRINSIC_0((char *)"service_list", sl_service_list,
 			 SLANG_VOID_TYPE),
 	MAKE_INTRINSIC_SS((char *)"service_property", sl_service_property,
-			  SLANG_STRING_TYPE),
+			  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,



More information about the Cluster-cvs mailing list