<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/appletalk, branch linux-2.6.20.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.20.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.20.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-04-06T10:43:18Z</updated>
<entry>
<title>APPLETALK: Fix a remotely triggerable crash</title>
<updated>2007-04-06T10:43:18Z</updated>
<author>
<name>Jean Delvare</name>
</author>
<published>2007-04-05T06:52:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f8c08c340b8308ca0afb19d62f71b2b39ccfc9e0'/>
<id>urn:sha1:f8c08c340b8308ca0afb19d62f71b2b39ccfc9e0</id>
<content type='text'>
When we receive an AppleTalk frame shorter than what its header says,
we still attempt to verify its checksum, and trip on the BUG_ON() at
the end of function atalk_sum_skb() because of the length mismatch.

This has security implications because this can be triggered by simply
sending a specially crafted ethernet frame to a target victim,
effectively crashing that host. Thus this qualifies, I think, as a
remote DoS. Here is the frame I used to trigger the crash, in npg
format:

&lt;Appletalk Killer&gt;
{
# Ethernet header -----

  XX XX XX XX XX XX  # Destination MAC
  00 00 00 00 00 00  # Source MAC
  00 1D              # Length

# LLC header -----

  AA AA 03
  08 00 07 80 9B  # Appletalk

# Appletalk header -----

  00 1B        # Packet length (invalid)
  00 01        # Fake checksum
  00 00 00 00  # Destination and source networks
  00 00 00 00  # Destination and source nodes and ports

# Payload -----

  0C 0D 0E 0F 10 11 12 13
  14
}

The destination MAC address must be set to those of the victim.

The severity is mitigated by two requirements:
* The target host must have the appletalk kernel module loaded. I
  suspect this isn't so frequent.
* AppleTalk frames are non-IP, thus I guess they can only travel on
  local networks. I am no network expert though, maybe it is possible
  to somehow encapsulate AppleTalk packets over IP.

The bug has been reported back in June 2004:
  http://bugzilla.kernel.org/show_bug.cgi?id=2979
But it wasn't investigated, and was closed in July 2006 as both
reporters had vanished meanwhile.

This code was new in kernel 2.6.0-test5:
  http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=7ab442d7e0a76402c12553ee256f756097cae2d2
And not modified since then, so we can assume that vanilla kernels
2.6.0-test5 and later, and distribution kernels based thereon, are
affected.

Note that I still do not know for sure what triggered the bug in the
real-world cases. The frame could have been corrupted by the kernel if
we have a bug hiding somewhere. But more likely, we are receiving the
faulty frame from the network.

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>[PATCH] severing skbuff.h -&gt; highmem.h</title>
<updated>2006-12-04T07:00:29Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2006-10-19T20:08:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a1f8e7f7fb9d7e2cbcb53170edca7c0ac4680697'/>
<id>urn:sha1:a1f8e7f7fb9d7e2cbcb53170edca7c0ac4680697</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[APPLETALK]: Fix potential OOPS in atalk_sendmsg().</title>
<updated>2006-10-30T23:24:34Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-10-27T22:26:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=201a95afaa324b23188eeec268f6bb0b4b70b710'/>
<id>urn:sha1:201a95afaa324b23188eeec268f6bb0b4b70b710</id>
<content type='text'>
atrtr_find() can return NULL, so do not blindly dereference
rt-&gt;dev before we check for rt being NULL.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[ATALK]: endianness annotations</title>
<updated>2006-09-29T00:53:58Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2006-09-27T04:22:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2a50f28c326d20ab4556be1b867ecddf6aefbb88'/>
<id>urn:sha1:2a50f28c326d20ab4556be1b867ecddf6aefbb88</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET]: Conversions from kmalloc+memset to k(z|c)alloc.</title>
<updated>2006-07-21T21:51:30Z</updated>
<author>
<name>Panagiotis Issaris</name>
</author>
<published>2006-07-21T21:51:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0da974f4f303a6842516b764507e3c0a03f41e5a'/>
<id>urn:sha1:0da974f4f303a6842516b764507e3c0a03f41e5a</id>
<content type='text'>
Signed-off-by: Panagiotis Issaris &lt;takis@issaris.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</content>
</entry>
<entry>
<title>Remove obsolete #include &lt;linux/config.h&gt;</title>
<updated>2006-06-30T17:25:36Z</updated>
<author>
<name>Jörn Engel</name>
</author>
<published>2006-06-30T17:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ab3d5624e172c553004ecc862bfeac16d9d68b7'/>
<id>urn:sha1:6ab3d5624e172c553004ecc862bfeac16d9d68b7</id>
<content type='text'>
Signed-off-by: Jörn Engel &lt;joern@wohnheim.fh-wedel.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[NET]: Fix ipx/econet/appletalk/irda ioctl crashes</title>
<updated>2006-03-29T01:02:43Z</updated>
<author>
<name>Petr Vandrovec</name>
</author>
<published>2006-03-28T07:39:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6c90b71a355a0a4a22e1cfee5748617adc25a53'/>
<id>urn:sha1:f6c90b71a355a0a4a22e1cfee5748617adc25a53</id>
<content type='text'>
Fix kernel oopses whenever somebody issues compatible ioctl on AppleTalk,
Econet, IPX or IRDA socket.  For AppleTalk/Econet/IRDA it restores state
in which these sockets were before compat_ioctl was introduced to the socket
ops, for IPX it implements support for 4 ioctls which were not implemented
before - as these ioctls use structures which match between 32bit and 64bit
userspace, no special code is needed, just call 64bit ioctl handler.

Signed-off-by: Petr Vandrovec &lt;petr@vandrovec.name&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] capable/capability.h (net/)</title>
<updated>2006-01-12T02:42:14Z</updated>
<author>
<name>Randy Dunlap</name>
</author>
<published>2006-01-11T20:17:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4fc268d24ceb9f4150777c1b5b2b8e6214e56b2b'/>
<id>urn:sha1:4fc268d24ceb9f4150777c1b5b2b8e6214e56b2b</id>
<content type='text'>
net: Use &lt;linux/capability.h&gt; where capable() is used.

Signed-off-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[NET]: Add a dev_ioctl() fallback to sock_ioctl()</title>
<updated>2006-01-03T22:18:33Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2006-01-03T22:18:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723'/>
<id>urn:sha1:b5e5fa5e093e42cab4ee3d6dcbc4f450ad29a723</id>
<content type='text'>
Currently all network protocols need to call dev_ioctl as the default
fallback in their ioctl implementations.  This patch adds a fallback
to dev_ioctl to sock_ioctl if the protocol returned -ENOIOCTLCMD.
This way all the procotol ioctl handlers can be simplified and we don't
need to export dev_ioctl.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET]: move struct proto_ops to const</title>
<updated>2006-01-03T21:11:15Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2005-12-22T20:49:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90ddc4f0470427df306f308ad03db6b6b21644b8'/>
<id>urn:sha1:90ddc4f0470427df306f308ad03db6b6b21644b8</id>
<content type='text'>
I noticed that some of 'struct proto_ops' used in the kernel may share
a cache line used by locks or other heavily modified data. (default
linker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at
least)

This patch makes sure a 'struct proto_ops' can be declared as const,
so that all cpus can share all parts of it without false sharing.

This is not mandatory : a driver can still use a read/write structure
if it needs to (and eventually a __read_mostly)

I made a global stubstitute to change all existing occurences to make
them const.

This should reduce the possibility of false sharing on SMP, and
speedup some socket system calls.

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
