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/transport/plugin_transport_udp.c | |
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/transport/plugin_transport_udp.c')
-rw-r--r-- | src/transport/plugin_transport_udp.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c index a999897cc..7b9a78eb4 100644 --- a/src/transport/plugin_transport_udp.c +++ b/src/transport/plugin_transport_udp.c | |||
@@ -691,7 +691,7 @@ udp_plugin_get_network_for_address (void *cls, | |||
691 | #endif | 691 | #endif |
692 | a6.sin6_family = AF_INET6; | 692 | a6.sin6_family = AF_INET6; |
693 | a6.sin6_port = u6->u6_port; | 693 | a6.sin6_port = u6->u6_port; |
694 | memcpy (&a6.sin6_addr, &u6->ipv6_addr, sizeof(struct in6_addr)); | 694 | GNUNET_memcpy (&a6.sin6_addr, &u6->ipv6_addr, sizeof(struct in6_addr)); |
695 | sb = &a6; | 695 | sb = &a6; |
696 | sbs = sizeof(a6); | 696 | sbs = sizeof(a6); |
697 | } | 697 | } |
@@ -1891,7 +1891,7 @@ enqueue_fragment (void *cls, | |||
1891 | udpw->frag_ctx = frag_ctx; | 1891 | udpw->frag_ctx = frag_ctx; |
1892 | udpw->qc = &qc_fragment_sent; | 1892 | udpw->qc = &qc_fragment_sent; |
1893 | udpw->qc_cls = plugin; | 1893 | udpw->qc_cls = plugin; |
1894 | memcpy (udpw->msg_buf, | 1894 | GNUNET_memcpy (udpw->msg_buf, |
1895 | msg, | 1895 | msg, |
1896 | msg_len); | 1896 | msg_len); |
1897 | enqueue (plugin, | 1897 | enqueue (plugin, |
@@ -2094,10 +2094,10 @@ udp_plugin_send (void *cls, | |||
2094 | udpw->frag_ctx = NULL; | 2094 | udpw->frag_ctx = NULL; |
2095 | udpw->qc = &qc_message_sent; | 2095 | udpw->qc = &qc_message_sent; |
2096 | udpw->qc_cls = plugin; | 2096 | udpw->qc_cls = plugin; |
2097 | memcpy (udpw->msg_buf, | 2097 | GNUNET_memcpy (udpw->msg_buf, |
2098 | udp, | 2098 | udp, |
2099 | sizeof (struct UDPMessage)); | 2099 | sizeof (struct UDPMessage)); |
2100 | memcpy (&udpw->msg_buf[sizeof(struct UDPMessage)], | 2100 | GNUNET_memcpy (&udpw->msg_buf[sizeof(struct UDPMessage)], |
2101 | msgbuf, | 2101 | msgbuf, |
2102 | msgbuf_size); | 2102 | msgbuf_size); |
2103 | enqueue (plugin, | 2103 | enqueue (plugin, |
@@ -2120,7 +2120,7 @@ udp_plugin_send (void *cls, | |||
2120 | /* fragmented message */ | 2120 | /* fragmented message */ |
2121 | if (NULL != s->frag_ctx) | 2121 | if (NULL != s->frag_ctx) |
2122 | return GNUNET_SYSERR; | 2122 | return GNUNET_SYSERR; |
2123 | memcpy (&udp[1], | 2123 | GNUNET_memcpy (&udp[1], |
2124 | msgbuf, | 2124 | msgbuf, |
2125 | msgbuf_size); | 2125 | msgbuf_size); |
2126 | frag_ctx = GNUNET_new (struct UDP_FragmentationContext); | 2126 | frag_ctx = GNUNET_new (struct UDP_FragmentationContext); |
@@ -2944,7 +2944,7 @@ ack_proc (void *cls, | |||
2944 | udp_ack->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_ACK); | 2944 | udp_ack->header.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_ACK); |
2945 | udp_ack->delay = htonl (delay); | 2945 | udp_ack->delay = htonl (delay); |
2946 | udp_ack->sender = *plugin->env->my_identity; | 2946 | udp_ack->sender = *plugin->env->my_identity; |
2947 | memcpy (&udp_ack[1], | 2947 | GNUNET_memcpy (&udp_ack[1], |
2948 | msg, | 2948 | msg, |
2949 | ntohs (msg->size)); | 2949 | ntohs (msg->size)); |
2950 | enqueue (plugin, | 2950 | enqueue (plugin, |
@@ -2994,7 +2994,7 @@ read_process_fragment (struct Plugin *plugin, | |||
2994 | { | 2994 | { |
2995 | /* Create a new defragmentation context */ | 2995 | /* Create a new defragmentation context */ |
2996 | d_ctx = GNUNET_malloc (sizeof (struct DefragContext) + udp_addr_len); | 2996 | d_ctx = GNUNET_malloc (sizeof (struct DefragContext) + udp_addr_len); |
2997 | memcpy (&d_ctx[1], | 2997 | GNUNET_memcpy (&d_ctx[1], |
2998 | udp_addr, | 2998 | udp_addr, |
2999 | udp_addr_len); | 2999 | udp_addr_len); |
3000 | d_ctx->udp_addr = (const union UdpAddress *) &d_ctx[1]; | 3000 | d_ctx->udp_addr = (const union UdpAddress *) &d_ctx[1]; |