From fa2fa02613347204e0e1aa2e588f5e4a4d19d108 Mon Sep 17 00:00:00 2001 From: Siarzhuk Zharski Date: Sun, 19 Aug 2012 22:28:25 +0200 Subject: [PATCH] Insert Addressing::LeaveGroup call on dropping multicast group membership. Omitting this call left invalid reference to deleted group in the multicast groups hash-map and any upcoming attempt to join the group will crash the system. Fixes #6736. --- src/add-ons/kernel/network/protocols/ipv4/multicast.cpp | 1 + src/add-ons/kernel/network/protocols/ipv6/multicast.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/add-ons/kernel/network/protocols/ipv4/multicast.cpp b/src/add-ons/kernel/network/protocols/ipv4/multicast.cpp index 8da85ec6eb..4cedcd5976 100644 --- a/src/add-ons/kernel/network/protocols/ipv4/multicast.cpp +++ b/src/add-ons/kernel/network/protocols/ipv4/multicast.cpp @@ -61,6 +61,7 @@ template status_t MulticastGroupInterface::Drop() { fAddresses.Clear(); + Addressing::LeaveGroup(this); fFilterMode = kInclude; return B_OK; } diff --git a/src/add-ons/kernel/network/protocols/ipv6/multicast.cpp b/src/add-ons/kernel/network/protocols/ipv6/multicast.cpp index f21e4beeb4..da4071c7cb 100644 --- a/src/add-ons/kernel/network/protocols/ipv6/multicast.cpp +++ b/src/add-ons/kernel/network/protocols/ipv6/multicast.cpp @@ -50,6 +50,7 @@ template status_t MulticastGroupInterface::Drop() { fAddresses.Clear(); + Addressing::LeaveGroup(this); fFilterMode = kInclude; return B_OK; }