<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/ipv6, branch v2.6.16.54</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/ipv6?h=v2.6.16.54</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/ipv6?h=v2.6.16.54'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2007-07-22T16:29:30Z</updated>
<entry>
<title>[IPV6]: MSG_ERRQUEUE messages do not pass to connected raw sockets</title>
<updated>2007-07-22T16:29:30Z</updated>
<author>
<name>Dmitry Butskoy</name>
<email>dmitry@butskoy.name</email>
</author>
<published>2007-07-22T16:29:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8d2693e6821f1027e33e36284cc3cf0e8d915eb8'/>
<id>urn:sha1:8d2693e6821f1027e33e36284cc3cf0e8d915eb8</id>
<content type='text'>
Taken from http://bugzilla.kernel.org/show_bug.cgi?id=8747

Problem Description:

It is related to the possibility to obtain MSG_ERRQUEUE messages from the udp
and raw sockets, both connected and unconnected.

There is a little typo in net/ipv6/icmp.c code, which prevents such messages
to be delivered to the errqueue of the correspond raw socket, when the socket
is CONNECTED.  The typo is due to swap of local/remote addresses.

Consider __raw_v6_lookup() function from net/ipv6/raw.c. When a raw socket is
looked up usual way, it is something like:

sk = __raw_v6_lookup(sk, nexthdr, daddr, saddr, IP6CB(skb)-&gt;iif);

where "daddr" is a destination address of the incoming packet (IOW our local
address), "saddr" is a source address of the incoming packet (the remote end).

But when the raw socket is looked up for some icmp error report, in
net/ipv6/icmp.c:icmpv6_notify() , daddr/saddr are obtained from the echoed
fragment of the "bad" packet, i.e.  "daddr" is the original destination
address of that packet, "saddr" is our local address.  Hence, for
icmpv6_notify() must use "saddr, daddr" in its arguments, not "daddr, saddr"
...

Steps to reproduce:

Create some raw socket, connect it to an address, and cause some error
situation: f.e. set ttl=1 where the remote address is more than 1 hop to reach.
Set IPV6_RECVERR .
Then send something and wait for the error (f.e. poll() with POLLERR|POLLIN).
You should receive "time exceeded" icmp message (because of "ttl=1"), but the
socket do not receive it.

If you do not connect your raw socket, you will receive MSG_ERRQUEUE
successfully.  (The reason is that for unconnected socket there are no actual
checks for local/remote addresses).

Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Reverse sense of promisc tests in ip6_mc_input</title>
<updated>2007-05-22T23:01:53Z</updated>
<author>
<name>Corey Mutter</name>
<email>crm-netdev@mutternet.com</email>
</author>
<published>2007-05-22T23:01:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9bf4eae1b5a9787d5321478e6bac6e66c37b4d3e'/>
<id>urn:sha1:9bf4eae1b5a9787d5321478e6bac6e66c37b4d3e</id>
<content type='text'>
Reverse the sense of the promiscuous-mode tests in ip6_mc_input().

Signed-off-by: Corey Mutter &lt;crm-netdev@mutternet.com&gt;
Signed-off-by: David L Stevens &lt;dlstevens@us.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Send ICMPv6 error on scope violations.</title>
<updated>2007-05-22T22:55:49Z</updated>
<author>
<name>David L Stevens</name>
<email>dlstevens@us.ibm.com</email>
</author>
<published>2007-05-22T22:55:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a36aa221e62ffce68819f97844494c2d5f86d011'/>
<id>urn:sha1:a36aa221e62ffce68819f97844494c2d5f86d011</id>
<content type='text'>
When an IPv6 router is forwarding a packet with a link-local scope source
address off-link, RFC 4007 requires it to send an ICMPv6 destination
unreachable with code 2 ("not neighbor"), but Linux doesn't. Fix below.

Signed-off-by: David L Stevens &lt;dlstevens@us.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Track device renames in snmp6.</title>
<updated>2007-05-22T22:39:52Z</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@linux-foundation.org</email>
</author>
<published>2007-05-22T22:39:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=57b0c610b81c58e77299c7a0d96048a593183a98'/>
<id>urn:sha1:57b0c610b81c58e77299c7a0d96048a593183a98</id>
<content type='text'>
When network device's are renamed, the IPV6 snmp6 code
gets confused. It doesn't track name changes so it will OOPS
when network device's are removed.

The fix is trivial, just unregister/re-register in notify handler.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Fix slab corruption running ip6sic</title>
<updated>2007-05-22T22:38:17Z</updated>
<author>
<name>Eric Sesterhenn</name>
<email>snakebyte@gmx.de</email>
</author>
<published>2007-05-22T22:38:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dffa279e109e2462068b8a22f3783e3cbd930d81'/>
<id>urn:sha1:dffa279e109e2462068b8a22f3783e3cbd930d81</id>
<content type='text'>
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6]: Disallow RH0 by default (CVE-2007-2242)</title>
<updated>2007-04-30T23:31:47Z</updated>
<author>
<name>Adrian Bunk</name>
<email>bunk@stusta.de</email>
</author>
<published>2007-04-30T23:31:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5225791117b564cd8b5683cf82d9eea45b0f0d59'/>
<id>urn:sha1:5225791117b564cd8b5683cf82d9eea45b0f0d59</id>
<content type='text'>
A security issue is emerging.  Disallow Routing Header Type 0 by default
as we have been doing for IPv4.

This version already includes a fix for the original patch.

Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPv6]: Fix incorrect length check in rawv6_sendmsg()</title>
<updated>2007-04-13T20:58:26Z</updated>
<author>
<name>YOSHIFUJI Hideaki</name>
<email>yoshfuji@linux-ipv6.org</email>
</author>
<published>2007-04-13T19:30:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=889cde54cd2a82f6e4d7ed18440e0f6138b06d60'/>
<id>urn:sha1:889cde54cd2a82f6e4d7ed18440e0f6138b06d60</id>
<content type='text'>
In article &lt;20070329.142644.70222545.davem@davemloft.net&gt; (at Thu, 29 Mar 2007 14:26:44 -0700 (PDT)), David Miller &lt;davem@davemloft.net&gt; says:

&gt; From: Sridhar Samudrala &lt;sri@us.ibm.com&gt;
&gt; Date: Thu, 29 Mar 2007 14:17:28 -0700
&gt;
&gt; &gt; The check for length in rawv6_sendmsg() is incorrect.
&gt; &gt; As len is an unsigned int, (len &lt; 0) will never be TRUE.
&gt; &gt; I think checking for IPV6_MAXPLEN(65535) is better.
&gt; &gt;
&gt; &gt; Is it possible to send ipv6 jumbo packets using raw
&gt; &gt; sockets? If so, we can remove this check.
&gt;
&gt; I don't see why such a limitation against jumbo would exist,
&gt; does anyone else?
&gt;
&gt; Thanks for catching this Sridhar.  A good compiler should simply
&gt; fail to compile "if (x &lt; 0)" when 'x' is an unsigned type, don't
&gt; you think :-)

Dave, we use "int" for returning value,
so we should fix this anyway, IMHO;
we should not allow len &gt; INT_MAX.

Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Acked-by: Sridhar Samudrala &lt;sri@us.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[IPV6] HASHTABLES: Use appropriate seed for caluculating ehash index.</title>
<updated>2007-03-28T20:04:44Z</updated>
<author>
<name>YOSHIFUJI Hideaki</name>
<email>yoshfuji@linux-ipv6.org</email>
</author>
<published>2007-03-28T20:04:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fc9f944188ec3a6eca05b9a9afce9a96c05b0f7a'/>
<id>urn:sha1:fc9f944188ec3a6eca05b9a9afce9a96c05b0f7a</id>
<content type='text'>
Tetsuo Handa &lt;handat@pm.nttdata.co.jp&gt; told me that connect(2) with TCPv6
socket almost always took a few minutes to return when we did not have any
ports available in the range of net.ipv4.ip_local_port_range.

The reason was that we used incorrect seed for calculating index of
hash when we check established sockets in __inet6_check_established().

Signed-off-by: YOSHIFUJI Hideaki &lt;yoshfuji@linux-ipv6.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[NETFILTER]: nf_conntrack: fix incorrect classification of IPv6 fragments as ESTABLISHED</title>
<updated>2007-03-24T20:30:06Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2007-03-24T20:30:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=72d9f2d497cbd34b77cd47ce3c79d846a63fc9fc'/>
<id>urn:sha1:72d9f2d497cbd34b77cd47ce3c79d846a63fc9fc</id>
<content type='text'>
The individual fragments of a packet reassembled by conntrack have the
conntrack reference from the reassembled packet attached, but nfctinfo
is not copied. This leaves it initialized to 0, which unfortunately is
the value of IP_CT_ESTABLISHED.

The result is that all IPv6 fragments are tracked as ESTABLISHED,
allowing them to bypass a usual ruleset which accepts ESTABLISHED
packets early.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>NETFILTER: nf_conntrack_ipv6: fix crash when handling fragments</title>
<updated>2007-03-24T20:22:33Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2007-03-24T20:22:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fbe2454a0d10bdbf27680d4bfc93cf0293bc6a6e'/>
<id>urn:sha1:fbe2454a0d10bdbf27680d4bfc93cf0293bc6a6e</id>
<content type='text'>
When IPv6 connection tracking splits up a defragmented packet into
its original fragments, the packets are taken from a list and are
passed to the network stack with skb-&gt;next still set. This causes
dev_hard_start_xmit to treat them as GSO fragments, resulting in
a use after free when connection tracking handles the next fragment.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
</feed>
