From 5a6bb4e48c2192b72ee7bf419774bdeeca5f7511 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 19 Dec 2014 21:54:51 +0000 Subject: -fix leaks, check RV --- src/multicast/gnunet-service-multicast.c | 2 +- src/psyc/gnunet-service-psyc.c | 23 ++++++++++++++++------- src/psyc/test_psyc.c | 11 ++++++----- 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c index 2998ce972..daaf242e8 100644 --- a/src/multicast/gnunet-service-multicast.c +++ b/src/multicast/gnunet-service-multicast.c @@ -1185,7 +1185,7 @@ cadet_recv_join_decision (void *cls, struct Member *mem = (struct Member *) chn->grp; client_send_join_decision (mem, hdcsn); - + GNUNET_free (hdcsn); if (GNUNET_YES == ntohs (dcsn->is_admitted)) { chn->join_status = JOIN_ADMITTED; diff --git a/src/psyc/gnunet-service-psyc.c b/src/psyc/gnunet-service-psyc.c index c67a702a7..6aa0ad961 100644 --- a/src/psyc/gnunet-service-psyc.c +++ b/src/psyc/gnunet-service-psyc.c @@ -1642,6 +1642,7 @@ client_recv_slave_join (void *cls, struct GNUNET_SERVER_Client *client, sizeof (*req), relay_size, join_msg_size, req_size); GNUNET_break (0); GNUNET_SERVER_client_disconnect (client); + GNUNET_free (slv); return; } if (0 < slv->relay_count) @@ -1753,14 +1754,21 @@ static void client_recv_join_decision (void *cls, struct GNUNET_SERVER_Client *client, const struct GNUNET_MessageHeader *msg) { - struct Channel * - chn = GNUNET_SERVER_client_get_user_context (client, struct Channel); - GNUNET_assert (GNUNET_YES == chn->is_master); - struct Master *mst = (struct Master *) chn; - - struct GNUNET_PSYC_JoinDecisionMessage * - dcsn = (struct GNUNET_PSYC_JoinDecisionMessage *) msg; + const struct GNUNET_PSYC_JoinDecisionMessage *dcsn + = (const struct GNUNET_PSYC_JoinDecisionMessage *) msg; + struct Channel *chn; + struct Master *mst; struct JoinDecisionClosure jcls; + + chn = GNUNET_SERVER_client_get_user_context (client, struct Channel); + if (NULL == chn) + { + GNUNET_break (0); + GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); + return; + } + GNUNET_assert (GNUNET_YES == chn->is_master); + mst = (struct Master *) chn; jcls.is_admitted = ntohl (dcsn->is_admitted); jcls.msg = (sizeof (*dcsn) + sizeof (*jcls.msg) <= ntohs (msg->size)) @@ -2266,6 +2274,7 @@ store_recv_state_var (void *cls, const char *name, GNUNET_SERVER_notification_context_add (nc, opcls->client); GNUNET_SERVER_notification_context_unicast (nc, opcls->client, &op->header, GNUNET_NO); + GNUNET_free (op); return GNUNET_YES; } diff --git a/src/psyc/test_psyc.c b/src/psyc/test_psyc.c index 044895809..cb6f8732d 100644 --- a/src/psyc/test_psyc.c +++ b/src/psyc/test_psyc.c @@ -201,7 +201,7 @@ void state_get_var (void *cls, const char *name, const void *value, size_t value_size) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Got state var: %s\n%.*s\n", name, value_size, value); + "Got state var: %s\n%.*s\n", name, value_size, value); } @@ -694,7 +694,7 @@ slave_add_cb (void *cls, int64_t result, const char *err_msg) } -void +static void join_decision_cb (void *cls, const struct GNUNET_PSYC_JoinDecisionMessage *dcsn, int is_admitted, @@ -715,7 +715,7 @@ join_decision_cb (void *cls, } -void +static void join_request_cb (void *cls, const struct GNUNET_PSYC_JoinRequestMessage *req, const struct GNUNET_CRYPTO_EcdsaPublicKey *slave_key, @@ -734,7 +734,7 @@ join_request_cb (void *cls, } -void +static void slave_connect_cb (void *cls, int result, uint64_t max_message_id) { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, @@ -745,7 +745,7 @@ slave_connect_cb (void *cls, int result, uint64_t max_message_id) } -void +static void slave_join () { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Joining slave.\n"); @@ -764,6 +764,7 @@ slave_join () &slave_message_cb, &slave_message_part_cb, &slave_connect_cb, &join_decision_cb, NULL, join_msg); + GNUNET_free (join_msg); slv_chn = GNUNET_PSYC_slave_get_channel (slv); GNUNET_ENV_environment_destroy (env); } -- cgit v1.2.3