aboutsummaryrefslogtreecommitdiff
path: root/src/multicast
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-07-08 17:20:23 +0000
committerChristian Grothoff <christian@grothoff.org>2016-07-08 17:20:23 +0000
commitd8c53b12a818ff7cf82d06a1a69c395bdef85ee6 (patch)
tree0ebb0db416c157fcfde51a941185819dd12d51fd /src/multicast
parent5184c17d32a39c928c2a0fec3ee1ad098bbaa562 (diff)
downloadgnunet-d8c53b12a818ff7cf82d06a1a69c395bdef85ee6.tar.gz
gnunet-d8c53b12a818ff7cf82d06a1a69c395bdef85ee6.zip
-avoid calling memcpy() with NULL argument, even if len is 0
Diffstat (limited to 'src/multicast')
-rw-r--r--src/multicast/gnunet-service-multicast.c12
-rw-r--r--src/multicast/multicast_api.c14
-rw-r--r--src/multicast/test_multicast.c6
3 files changed, 16 insertions, 16 deletions
diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c
index 94f9d2f88..55c269874 100644
--- a/src/multicast/gnunet-service-multicast.c
+++ b/src/multicast/gnunet-service-multicast.c
@@ -727,7 +727,7 @@ cadet_notify_transmit_ready (void *cls, size_t buf_size, void *buf)
727 struct Channel *chn = tcls->chn; 727 struct Channel *chn = tcls->chn;
728 uint16_t msg_size = ntohs (tcls->msg->size); 728 uint16_t msg_size = ntohs (tcls->msg->size);
729 GNUNET_assert (msg_size <= buf_size); 729 GNUNET_assert (msg_size <= buf_size);
730 memcpy (buf, tcls->msg, msg_size); 730 GNUNET_memcpy (buf, tcls->msg, msg_size);
731 GNUNET_free (tcls); 731 GNUNET_free (tcls);
732 732
733 if (0 == chn->msgs_pending) 733 if (0 == chn->msgs_pending)
@@ -1051,7 +1051,7 @@ client_recv_member_join (void *cls, struct GNUNET_SERVER_Client *client,
1051 req->peer = this_peer; 1051 req->peer = this_peer;
1052 GNUNET_CRYPTO_ecdsa_key_get_public (&mem->priv_key, &req->member_pub_key); 1052 GNUNET_CRYPTO_ecdsa_key_get_public (&mem->priv_key, &req->member_pub_key);
1053 if (0 < join_msg_size) 1053 if (0 < join_msg_size)
1054 memcpy (&req[1], join_msg, join_msg_size); 1054 GNUNET_memcpy (&req[1], join_msg, join_msg_size);
1055 1055
1056 req->member_pub_key = mem->pub_key; 1056 req->member_pub_key = mem->pub_key;
1057 req->purpose.size = htonl (msg_size 1057 req->purpose.size = htonl (msg_size
@@ -1092,7 +1092,7 @@ client_send_join_decision (struct Member *mem,
1092 { /* Member admitted, store join_decision. */ 1092 { /* Member admitted, store join_decision. */
1093 uint16_t dcsn_size = ntohs (dcsn->header.size); 1093 uint16_t dcsn_size = ntohs (dcsn->header.size);
1094 mem->join_dcsn = GNUNET_malloc (dcsn_size); 1094 mem->join_dcsn = GNUNET_malloc (dcsn_size);
1095 memcpy (mem->join_dcsn, dcsn, dcsn_size); 1095 GNUNET_memcpy (mem->join_dcsn, dcsn, dcsn_size);
1096 } 1096 }
1097 else 1097 else
1098 { /* Refused entry, but replay would be still possible for past members. */ 1098 { /* Refused entry, but replay would be still possible for past members. */
@@ -1620,7 +1620,7 @@ cadet_recv_join_decision (void *cls,
1620 struct MulticastJoinDecisionMessageHeader * 1620 struct MulticastJoinDecisionMessageHeader *
1621 hdcsn = GNUNET_malloc (sizeof (*hdcsn) + size); 1621 hdcsn = GNUNET_malloc (sizeof (*hdcsn) + size);
1622 hdcsn->peer = chn->peer; 1622 hdcsn->peer = chn->peer;
1623 memcpy (&hdcsn[1], dcsn, sizeof (*hdcsn) + size); 1623 GNUNET_memcpy (&hdcsn[1], dcsn, sizeof (*hdcsn) + size);
1624 1624
1625 struct Member *mem = (struct Member *) chn->grp; 1625 struct Member *mem = (struct Member *) chn->grp;
1626 client_send_join_decision (mem, hdcsn); 1626 client_send_join_decision (mem, hdcsn);
@@ -1745,8 +1745,8 @@ cadet_recv_replay_request (void *cls,
1745 } 1745 }
1746 struct Channel *chn = *ctx; 1746 struct Channel *chn = *ctx;
1747 1747
1748 memcpy (&rep, m, sizeof (rep)); 1748 GNUNET_memcpy (&rep, m, sizeof (rep));
1749 memcpy (&rep.member_pub_key, &chn->member_pub_key, sizeof (chn->member_pub_key)); 1749 GNUNET_memcpy (&rep.member_pub_key, &chn->member_pub_key, sizeof (chn->member_pub_key));
1750 1750
1751 struct GNUNET_CONTAINER_MultiHashMap * 1751 struct GNUNET_CONTAINER_MultiHashMap *
1752 grp_replay_req = GNUNET_CONTAINER_multihashmap_get (replay_req_cadet, 1752 grp_replay_req = GNUNET_CONTAINER_multihashmap_get (replay_req_cadet,
diff --git a/src/multicast/multicast_api.c b/src/multicast/multicast_api.c
index ce36ef6f2..75b2d8852 100644
--- a/src/multicast/multicast_api.c
+++ b/src/multicast/multicast_api.c
@@ -205,7 +205,7 @@ group_send_connect_msg (struct GNUNET_MULTICAST_Group *grp)
205{ 205{
206 uint16_t cmsg_size = ntohs (grp->connect_msg->size); 206 uint16_t cmsg_size = ntohs (grp->connect_msg->size);
207 struct GNUNET_MessageHeader *cmsg = GNUNET_malloc (cmsg_size); 207 struct GNUNET_MessageHeader *cmsg = GNUNET_malloc (cmsg_size);
208 memcpy (cmsg, grp->connect_msg, cmsg_size); 208 GNUNET_memcpy (cmsg, grp->connect_msg, cmsg_size);
209 GNUNET_CLIENT_MANAGER_transmit_now (grp->client, cmsg); 209 GNUNET_CLIENT_MANAGER_transmit_now (grp->client, cmsg);
210 GNUNET_free (cmsg); 210 GNUNET_free (cmsg);
211} 211}
@@ -625,9 +625,9 @@ GNUNET_MULTICAST_join_decision (struct GNUNET_MULTICAST_JoinHandle *join,
625 dcsn->is_admitted = htonl (is_admitted); 625 dcsn->is_admitted = htonl (is_admitted);
626 dcsn->relay_count = htonl (relay_count); 626 dcsn->relay_count = htonl (relay_count);
627 if (0 < relay_size) 627 if (0 < relay_size)
628 memcpy (&dcsn[1], relays, relay_size); 628 GNUNET_memcpy (&dcsn[1], relays, relay_size);
629 if (0 < join_resp_size) 629 if (0 < join_resp_size)
630 memcpy (((char *) &dcsn[1]) + relay_size, join_resp, join_resp_size); 630 GNUNET_memcpy (((char *) &dcsn[1]) + relay_size, join_resp, join_resp_size);
631 631
632 GNUNET_CLIENT_MANAGER_transmit (grp->client, &hdcsn->header); 632 GNUNET_CLIENT_MANAGER_transmit (grp->client, &hdcsn->header);
633 GNUNET_free (hdcsn); 633 GNUNET_free (hdcsn);
@@ -670,7 +670,7 @@ GNUNET_MULTICAST_replay_response (struct GNUNET_MULTICAST_ReplayHandle *rh,
670 if (GNUNET_MULTICAST_REC_OK == ec) 670 if (GNUNET_MULTICAST_REC_OK == ec)
671 { 671 {
672 GNUNET_assert (NULL != msg); 672 GNUNET_assert (NULL != msg);
673 memcpy (&res[1], msg, msg_size); 673 GNUNET_memcpy (&res[1], msg, msg_size);
674 } 674 }
675 675
676 GNUNET_CLIENT_MANAGER_transmit (rh->grp->client, &res->header); 676 GNUNET_CLIENT_MANAGER_transmit (rh->grp->client, &res->header);
@@ -781,7 +781,7 @@ GNUNET_MULTICAST_origin_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
781 start->header.type = htons (GNUNET_MESSAGE_TYPE_MULTICAST_ORIGIN_START); 781 start->header.type = htons (GNUNET_MESSAGE_TYPE_MULTICAST_ORIGIN_START);
782 start->header.size = htons (sizeof (*start)); 782 start->header.size = htons (sizeof (*start));
783 start->max_fragment_id = max_fragment_id; 783 start->max_fragment_id = max_fragment_id;
784 memcpy (&start->group_key, priv_key, sizeof (*priv_key)); 784 GNUNET_memcpy (&start->group_key, priv_key, sizeof (*priv_key));
785 785
786 grp->connect_msg = (struct GNUNET_MessageHeader *) start; 786 grp->connect_msg = (struct GNUNET_MessageHeader *) start;
787 grp->is_origin = GNUNET_YES; 787 grp->is_origin = GNUNET_YES;
@@ -1024,9 +1024,9 @@ GNUNET_MULTICAST_member_join (const struct GNUNET_CONFIGURATION_Handle *cfg,
1024 join->origin = *origin; 1024 join->origin = *origin;
1025 join->relay_count = ntohl (relay_count); 1025 join->relay_count = ntohl (relay_count);
1026 if (0 < relay_size) 1026 if (0 < relay_size)
1027 memcpy (&join[1], relays, relay_size); 1027 GNUNET_memcpy (&join[1], relays, relay_size);
1028 if (0 < join_msg_size) 1028 if (0 < join_msg_size)
1029 memcpy (((char *) &join[1]) + relay_size, join_msg, join_msg_size); 1029 GNUNET_memcpy (((char *) &join[1]) + relay_size, join_msg, join_msg_size);
1030 1030
1031 grp->connect_msg = (struct GNUNET_MessageHeader *) join; 1031 grp->connect_msg = (struct GNUNET_MessageHeader *) join;
1032 grp->is_origin = GNUNET_NO; 1032 grp->is_origin = GNUNET_NO;
diff --git a/src/multicast/test_multicast.c b/src/multicast/test_multicast.c
index db58fe525..9b26f9af0 100644
--- a/src/multicast/test_multicast.c
+++ b/src/multicast/test_multicast.c
@@ -227,7 +227,7 @@ tmit_notify (void *cls, size_t *data_size, void *data)
227 tmit->paused = GNUNET_NO; 227 tmit->paused = GNUNET_NO;
228 228
229 *data_size = size; 229 *data_size = size;
230 memcpy (data, tmit->data[tmit->n], size); 230 GNUNET_memcpy (data, tmit->data[tmit->n], size);
231 231
232 return ++tmit->n < tmit->data_count ? GNUNET_NO : GNUNET_YES; 232 return ++tmit->n < tmit->data_count ? GNUNET_NO : GNUNET_YES;
233} 233}
@@ -610,7 +610,7 @@ origin_recv_join_request (void *cls,
610 join_resp = GNUNET_malloc (sizeof (join_resp) + data_size); 610 join_resp = GNUNET_malloc (sizeof (join_resp) + data_size);
611 join_resp->size = htons (sizeof (join_resp) + data_size); 611 join_resp->size = htons (sizeof (join_resp) + data_size);
612 join_resp->type = htons (456); 612 join_resp->type = htons (456);
613 memcpy (&join_resp[1], data, data_size); 613 GNUNET_memcpy (&join_resp[1], data, data_size);
614 614
615 switch (test) 615 switch (test)
616 { 616 {
@@ -649,7 +649,7 @@ member_join (int t)
649 join_req = GNUNET_malloc (sizeof (join_req) + data_size); 649 join_req = GNUNET_malloc (sizeof (join_req) + data_size);
650 join_req->size = htons (sizeof (join_req) + data_size); 650 join_req->size = htons (sizeof (join_req) + data_size);
651 join_req->type = htons (123); 651 join_req->type = htons (123);
652 memcpy (&join_req[1], data, data_size); 652 GNUNET_memcpy (&join_req[1], data, data_size);
653 653
654 member = GNUNET_MULTICAST_member_join (cfg, &group_pub_key, member_key, 654 member = GNUNET_MULTICAST_member_join (cfg, &group_pub_key, member_key,
655 &this_peer, 1, &this_peer, join_req, 655 &this_peer, 1, &this_peer, join_req,