From 4c2e35606e6c4cd5d51428bf0a4ee9c62d8e2f20 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Philipp=20T=C3=B6lke?= Date: Wed, 17 Nov 2010 08:55:34 +0000 Subject: [PATCH] Fix memory-leak (and superfluous copy) --- src/vpn/gnunet-daemon-vpn.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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; } } -- 2.25.1