From 4122d6c0c0b3040b09a40ef9cca95cdf5addfac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 17 Jun 2008 16:04:24 +0000 Subject: [PATCH] =?UTF-8?q?*=20Applied=20patch=20by=20Jan=20Kl=C3=B6tzke?= =?UTF-8?q?=20that=20prevents=20the=20ICMP=20module=20to=20answer=20broadc?= =?UTF-8?q?ast=20=20=20ping=20requests,=20and=20those=20before=20an=20inte?= =?UTF-8?q?rface=20is=20configured.=20*=20Added=20comment=20that=20explain?= =?UTF-8?q?s=20the=20consequences.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25995 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/protocols/icmp/icmp.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/protocols/icmp/icmp.cpp b/src/add-ons/kernel/network/protocols/icmp/icmp.cpp index baeffe4749..c9c190aa12 100644 --- a/src/add-ons/kernel/network/protocols/icmp/icmp.cpp +++ b/src/add-ons/kernel/network/protocols/icmp/icmp.cpp @@ -251,10 +251,17 @@ icmp_receive_data(net_buffer *buffer) case ICMP_TYPE_ECHO_REQUEST: { net_domain *domain; - if (buffer->interface != NULL) + if (buffer->interface != NULL) { domain = buffer->interface->domain; - else + + // We only reply to echo requests of our local interface; we + // don't reply to broadcast requests + if (!domain->address_module->equal_addresses( + buffer->interface->address, buffer->destination)) + break; + } else domain = sStackModule->get_domain(buffer->source->sa_family); + if (domain == NULL || domain->module == NULL) break;