aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-10-30 19:58:50 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2016-10-30 20:00:49 +0100
commit6d4efd424682f90896d5237ede4326416b6fa97d (patch)
tree3d535f5f3a1c148e465a51ee0afa027832d0b6e9 /client
parent7ecf4ae11df97efa2113dad8855eb8d9cb1a9498 (diff)
downloadcmix-6d4efd424682f90896d5237ede4326416b6fa97d.tar.gz
cmix-6d4efd424682f90896d5237ede4326416b6fa97d.tar.bz2
cmix-6d4efd424682f90896d5237ede4326416b6fa97d.zip
Fixes some memory leaks and consequent incorrect frees.
Diffstat (limited to 'client')
-rw-r--r--client/cmixclient.cpp10
-rw-r--r--client/cmixclient.hpp2
2 files changed, 6 insertions, 6 deletions
diff --git a/client/cmixclient.cpp b/client/cmixclient.cpp
index f05b200..3abe1eb 100644
--- a/client/cmixclient.cpp
+++ b/client/cmixclient.cpp
@@ -16,17 +16,17 @@ void CMixClient::key_exchange(size_t node_id) {
cmix_proto::KeyExchange ke;
ke.set_public_key(buffer, len);
-
- free(buffer);
+ api.free_buffer(buffer);
data.at(node_id).secret_value = api.get_group_element(true);
- void* shared_value = api.get_key_exchange_value(data.at(node_id).secret_value);
- api.element_to_array(&buffer, &len, shared_value);
+ GroupElement shared_value = api.get_key_exchange_value(data.at(node_id).secret_value);
+ api.element_to_array(&buffer, &len, shared_value);
ke.set_value(buffer, len);
+ api.free_buffer(buffer);
- free(buffer);
+ api.free_group_element(shared_value);
network_connections.at(node_id).async_send(ke);
network_connections.at(node_id).async_receive([node_id, this](cmix_proto::CMixMessage message) {
diff --git a/client/cmixclient.hpp b/client/cmixclient.hpp
index 2df754b..f1c726d 100644
--- a/client/cmixclient.hpp
+++ b/client/cmixclient.hpp
@@ -37,7 +37,7 @@ struct NetworkDetails {
class CMixClient {
struct NodeData {
- void* secret_value;
+ GroupElement secret_value;
SharedKey shared_value;
};