diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-07-08 17:20:23 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-07-08 17:20:23 +0000 |
commit | d8c53b12a818ff7cf82d06a1a69c395bdef85ee6 (patch) | |
tree | 0ebb0db416c157fcfde51a941185819dd12d51fd /src/multicast | |
parent | 5184c17d32a39c928c2a0fec3ee1ad098bbaa562 (diff) | |
download | gnunet-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.c | 12 | ||||
-rw-r--r-- | src/multicast/multicast_api.c | 14 | ||||
-rw-r--r-- | src/multicast/test_multicast.c | 6 |
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, |