diff options
Diffstat (limited to 'src/secretsharing/secretsharing_common.c')
-rw-r--r-- | src/secretsharing/secretsharing_common.c | 17 |
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 | |||