From: Philipp Tölke Date: Wed, 17 Nov 2010 08:55:34 +0000 (+0000) Subject: Fix memory-leak (and superfluous copy) X-Git-Tag: initial-import-from-subversion-38251~19708 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4c2e35606e6c4cd5d51428bf0a4ee9c62d8e2f20;p=oweals%2Fgnunet.git Fix memory-leak (and superfluous copy) --- diff --git a/src/vpn/gnunet-daemon-vpn.c b/src/vpn/gnunet-daemon-vpn.c index f447eaf41..a2d43fb2f 100644 --- a/src/vpn/gnunet-daemon-vpn.c +++ b/src/vpn/gnunet-daemon-vpn.c @@ -422,11 +422,14 @@ message_token(void *cls, break; case 0x3a: /* ICMPv6 */ - pkt6_icmp = GNUNET_malloc(ntohs(pkt6->shdr.size)); - memcpy(pkt6_icmp, pkt6, ntohs(pkt6->shdr.size)); + pkt6_icmp = (struct ip6_icmp*)pkt6; /* If this packet is an icmp-echo-request and a mapping exists, answer */ if (pkt6_icmp->icmp_hdr.type == 0x80 && address_mapping_exists(pkt6->ip6_hdr.sadr)) + { + pkt6_icmp = GNUNET_malloc(ntohs(pkt6->shdr.size)); + memcpy(pkt6_icmp, pkt6, ntohs(pkt6->shdr.size)); GNUNET_SCHEDULER_add_now(&send_icmp_response, pkt6_icmp); + } break; } }