From f0a45a0fae71990024167bddf3617d754a3efbfa Mon Sep 17 00:00:00 2001 From: Jean-Francois SMIGIELSKI Date: Fri, 15 May 2015 18:57:49 +0200 Subject: [PATCH] cluster: fixed memory leak when fetching the services from the cosncience. --- cluster/remote/gridcluster_remote.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cluster/remote/gridcluster_remote.c b/cluster/remote/gridcluster_remote.c index 009aff4b9b..0f53164001 100644 --- a/cluster/remote/gridcluster_remote.c +++ b/cluster/remote/gridcluster_remote.c @@ -280,14 +280,16 @@ gcluster_get_services(const char *target, gdouble timeout, const gchar *type, gboolean full, GError ** error) { struct message_s *req = message_create_named(NAME_MSGNAME_CS_GET_SRV); - message_add_fields_str (req, - NAME_MSGKEY_TYPENAME, type, - NAME_MSGKEY_FULL, full?"1":NULL, - NULL); + message_add_field (req, NAME_MSGKEY_TYPENAME, type, strlen(type)); + if (full) + message_add_field_struint (req, NAME_MSGKEY_FULL, 1); + GByteArray *gba = message_marshall_gba_and_clean(req); GSList *out = NULL; GError *err = gridd_client_exec_and_decode (target, timeout, - message_marshall_gba_and_clean(req), &out, service_info_unmarshall); + gba, &out, service_info_unmarshall); + g_byte_array_unref(gba); + if (err) { if (error) g_error_transmit(error, err);