Received: (from majordomo@localhost) by oss.sgi.com (8.11.3/8.11.3) id f3K28oe02970 for netdev-outgoing; Thu, 19 Apr 2001 19:08:50 -0700 Received: from stsl.siemens.com.tw ([192.72.45.189]) by oss.sgi.com (8.11.3/8.11.3) with ESMTP id f3K28mM02967 for ; Thu, 19 Apr 2001 19:08:49 -0700 Received: from stslex.siemens.com.tw (stslex [192.72.45.13]) by stsl.siemens.com.tw (8.9.1/8.9.1) with ESMTP id KAA24915; Fri, 20 Apr 2001 10:19:45 +0800 (CST) Received: by stslex.siemens.com.tw with Internet Mail Service (5.5.2650.21) id ; Fri, 20 Apr 2001 10:08:21 +0800 Message-ID: <92C0C0AC8AE8D411864300105A835CBB50A5B4@stslex.siemens.com.tw> From: Ra Chen To: "'David S. Miller'" Cc: "'netdev@oss.sgi.com'" Subject: RE: obvious ndisc.c bug Date: Fri, 20 Apr 2001 10:08:20 +0800 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0C93E.C5786150" Sender: owner-netdev@oss.sgi.com Precedence: bulk This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C0C93E.C5786150 Content-Type: text/plain; charset="BIG5" > From: David S. Miller [mailto:davem@redhat.com] > Ra Chen writes: > > net/ipv6/ndisc.c in kernel 2.4.3 > > line 1076: > > > > if ((ipv6_addr_type(saddr)&IPV6_ADDR_MULTICAST) && > > > > "saddr" should be "daddr". > > This code looks correct to me, what exactly makes you think it should > be testing "daddr"? Similar code above for the solication cases also > checks "saddr" for being multicast. I think a multicast packet is a packet with multicast destination address. Am I wrong? It's impossible for a source address to be multicast, right? Where's the "similar code"? As I noticed line 1015 and 1043 both check "daddr" for being multicast. Ra Chen ------_=_NextPart_001_01C0C93E.C5786150 Content-Type: text/html; charset="BIG5" Content-Transfer-Encoding: quoted-printable RE: obvious ndisc.c bug

> From: David S. Miller [mailto:davem@redhat.com]
> Ra Chen writes:
>  > net/ipv6/ndisc.c in kernel = 2.4.3
>  > line 1076:
>  >
>  > if = ((ipv6_addr_type(saddr)&IPV6_ADDR_MULTICAST) &&
>  >
>  > "saddr" should be = "daddr".
>
> This code looks correct to me, what exactly = makes you think it should
> be testing "daddr"?  Similar = code above for the solication cases also
> checks "saddr" for being = multicast.

I think a multicast packet is a packet with multicast = destination address. Am I wrong?
It's impossible for a source address to be = multicast, right?
Where's the "similar code"?  As I = noticed line 1015 and 1043 both check "daddr" for being = multicast.

Ra Chen

------_=_NextPart_001_01C0C93E.C5786150--