From 9db38fdf344c2a51694723291f65617b17fe4895 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Sun, 19 Aug 2012 08:57:21 -0400 Subject: [PATCH] Fix ticket #8870. - multicast_address was being freed twice in ipv6_uninit_protocol(), causing a panic on exit in apps that made use of it. --- src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp b/src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp index 78cc3719b2..68ce9b8ddb 100644 --- a/src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp +++ b/src/add-ons/kernel/network/protocols/ipv6/ipv6.cpp @@ -184,6 +184,11 @@ struct ipv6_protocol : net_protocol { { } + ~ipv6_protocol() + { + delete raw; + } + RawSocket *raw; uint8 service_type; uint8 time_to_live; @@ -974,8 +979,6 @@ ipv6_uninit_protocol(net_protocol* _protocol) { ipv6_protocol* protocol = (ipv6_protocol*)_protocol; - delete protocol->raw; - delete protocol->multicast_address; delete protocol; return B_OK; }