summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@fastmq.commkdir>2009-12-18 14:19:28 +0100
committerMartin Sustrik <sustrik@fastmq.commkdir>2009-12-18 14:19:28 +0100
commit86d68cbcbd24e6dfe6dd1ed230c7806408b70668 (patch)
tree82c63dd330c42bebfce3c7c850263f4a74380d94
parent500d32a540d762d30a59e952a4f2216d73e4654c (diff)
memory leaks related to OpenPGM errors fixed
-rw-r--r--src/pgm_socket.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/pgm_socket.cpp b/src/pgm_socket.cpp
index 66f2396..8be64f8 100644
--- a/src/pgm_socket.cpp
+++ b/src/pgm_socket.cpp
@@ -141,13 +141,11 @@ int zmq::pgm_socket_t::open_transport ()
return -1;
}
- //zmq_log (1, "Transport GSI: %s, %s(%i)\n", pgm_print_gsi (&gsi),
- // __FILE__, __LINE__);
-
struct pgm_transport_info_t *res = NULL;
if (!pgm_if_get_transport_info (network, NULL, &res, &pgm_error)) {
errno = EINVAL;
+ g_error_free (pgm_error);
return -1;
}
@@ -160,10 +158,11 @@ int zmq::pgm_socket_t::open_transport ()
res->ti_udp_encap_mcast_port = port_number;
}
- if (!pgm_transport_create (&transport, res, &pgm_error)) {
+ if (!pgm_transport_create (&transport, res, &pgm_error)) {
pgm_if_free_transport_info (res);
// TODO: tranlate errors from glib into errnos.
errno = EINVAL;
+ g_error_free (pgm_error);
return -1;
}
@@ -318,6 +317,8 @@ int zmq::pgm_socket_t::open_transport ()
// Bind a transport to the specified network devices.
if (!pgm_transport_bind (transport, &pgm_error)) {
// TODO: tranlate errors from glib into errnos.
+ errno = EINVAL;
+ g_error_free (pgm_error);
return -1;
}
@@ -514,6 +515,8 @@ ssize_t zmq::pgm_socket_t::receive (void **raw_data_, const pgm_tsi_t **tsi_)
nbytes_rec = 0;
// In case of dala loss -1 is returned.
+ errno = EINVAL;
+ g_error_free (pgm_error);
return -1;
}