aboutsummaryrefslogtreecommitdiff
path: root/src/secretsharing/secretsharing_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/secretsharing/secretsharing_common.c')
-rw-r--r--src/secretsharing/secretsharing_common.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/secretsharing/secretsharing_common.c b/src/secretsharing/secretsharing_common.c
index 8fcba96d4..121e1975f 100644
--- a/src/secretsharing/secretsharing_common.c
+++ b/src/secretsharing/secretsharing_common.c
@@ -36,7 +36,7 @@ GNUNET_SECRETSHARING_share_read (const void *data,
36{ 36{
37 struct GNUNET_SECRETSHARING_Share *share; 37 struct GNUNET_SECRETSHARING_Share *share;
38 const struct GNUNET_SECRETSHARING_ShareHeaderNBO *sh = data; 38 const struct GNUNET_SECRETSHARING_ShareHeaderNBO *sh = data;
39 char *p; 39 const char *p;
40 size_t n; 40 size_t n;
41 uint16_t payload_size; 41 uint16_t payload_size;
42 42
@@ -47,7 +47,7 @@ GNUNET_SECRETSHARING_share_read (const void *data,
47 if (NULL != readlen) 47 if (NULL != readlen)
48 *readlen = payload_size + sizeof *sh; 48 *readlen = payload_size + sizeof *sh;
49 49
50 share = GNUNET_malloc (sizeof *share); 50 share = GNUNET_new (struct GNUNET_SECRETSHARING_Share);
51 51
52 share->threshold = ntohs (sh->threshold); 52 share->threshold = ntohs (sh->threshold);
53 share->num_peers = ntohs (sh->num_peers); 53 share->num_peers = ntohs (sh->num_peers);
@@ -56,20 +56,23 @@ GNUNET_SECRETSHARING_share_read (const void *data,
56 share->my_share = sh->my_share; 56 share->my_share = sh->my_share;
57 share->public_key = sh->public_key; 57 share->public_key = sh->public_key;
58 58
59 p = (void *) &sh[1]; 59 p = (const char *) &sh[1];
60 60
61 n = share->num_peers * sizeof (struct GNUNET_PeerIdentity); 61 n = share->num_peers * sizeof (struct GNUNET_PeerIdentity);
62 share->peers = GNUNET_malloc (n); 62 share->peers = GNUNET_new_array (share->num_peers,
63 struct GNUNET_PeerIdentity);
63 memcpy (share->peers, p, n); 64 memcpy (share->peers, p, n);
64 p += n; 65 p += n;
65 66
66 n = share->num_peers * sizeof (struct GNUNET_SECRETSHARING_FieldElement); 67 n = share->num_peers * sizeof (struct GNUNET_SECRETSHARING_FieldElement);
67 share->sigmas = GNUNET_malloc (n); 68 share->sigmas = GNUNET_new_array (share->num_peers,
69 struct GNUNET_SECRETSHARING_FieldElement);
68 memcpy (share->sigmas, p, n); 70 memcpy (share->sigmas, p, n);
69 p += n; 71 p += n;
70 72
71 n = share->num_peers * sizeof (uint16_t); 73 n = share->num_peers * sizeof (uint16_t);
72 share->original_indices = GNUNET_malloc (n); 74 share->original_indices = GNUNET_new_array (share->num_peers,
75 uint16_t);
73 memcpy (share->original_indices, p, n); 76 memcpy (share->original_indices, p, n);
74 77
75 return share; 78 return share;
@@ -148,5 +151,3 @@ GNUNET_SECRETSHARING_share_destroy (struct GNUNET_SECRETSHARING_Share *share)
148 share->peers = NULL; 151 share->peers = NULL;
149 GNUNET_free (share); 152 GNUNET_free (share);
150} 153}
151
152