<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net, branch v2.6.34</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.34</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.34'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2010-05-16T07:34:04Z</updated>
<entry>
<title>tcp: fix MD5 (RFC2385) support</title>
<updated>2010-05-16T07:34:04Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-05-16T07:34:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=35790c0421121364883a167bab8a2e37e1f67f78'/>
<id>urn:sha1:35790c0421121364883a167bab8a2e37e1f67f78</id>
<content type='text'>
TCP MD5 support uses percpu data for temporary storage. It currently
disables preemption so that same storage cannot be reclaimed by another
thread on same cpu.

We also have to make sure a softirq handler wont try to use also same
context. Various bug reports demonstrated corruptions.

Fix is to disable preemption and BH.

Reported-by: Bhaskar Dutta &lt;bhaskie@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: Fix a race between ICMP protocol unreachable and connect()</title>
<updated>2010-05-06T07:56:07Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vladislav.yasevich@hp.com</email>
</author>
<published>2010-05-06T07:56:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=50b5d6ad63821cea324a5a7a19854d4de1a0a819'/>
<id>urn:sha1:50b5d6ad63821cea324a5a7a19854d4de1a0a819</id>
<content type='text'>
ICMP protocol unreachable handling completely disregarded
the fact that the user may have locked the socket.  It proceeded
to destroy the association, even though the user may have
held the lock and had a ref on the association.  This resulted
in the following:

Attempt to release alive inet socket f6afcc00

=========================
[ BUG: held lock freed! ]
-------------------------
somenu/2672 is freeing memory f6afcc00-f6afcfff, with a lock still held
there!
 (sk_lock-AF_INET){+.+.+.}, at: [&lt;c122098a&gt;] sctp_connect+0x13/0x4c
1 lock held by somenu/2672:
 #0:  (sk_lock-AF_INET){+.+.+.}, at: [&lt;c122098a&gt;] sctp_connect+0x13/0x4c

stack backtrace:
Pid: 2672, comm: somenu Not tainted 2.6.32-telco #55
Call Trace:
 [&lt;c1232266&gt;] ? printk+0xf/0x11
 [&lt;c1038553&gt;] debug_check_no_locks_freed+0xce/0xff
 [&lt;c10620b4&gt;] kmem_cache_free+0x21/0x66
 [&lt;c1185f25&gt;] __sk_free+0x9d/0xab
 [&lt;c1185f9c&gt;] sk_free+0x1c/0x1e
 [&lt;c1216e38&gt;] sctp_association_put+0x32/0x89
 [&lt;c1220865&gt;] __sctp_connect+0x36d/0x3f4
 [&lt;c122098a&gt;] ? sctp_connect+0x13/0x4c
 [&lt;c102d073&gt;] ? autoremove_wake_function+0x0/0x33
 [&lt;c12209a8&gt;] sctp_connect+0x31/0x4c
 [&lt;c11d1e80&gt;] inet_dgram_connect+0x4b/0x55
 [&lt;c11834fa&gt;] sys_connect+0x54/0x71
 [&lt;c103a3a2&gt;] ? lock_release_non_nested+0x88/0x239
 [&lt;c1054026&gt;] ? might_fault+0x42/0x7c
 [&lt;c1054026&gt;] ? might_fault+0x42/0x7c
 [&lt;c11847ab&gt;] sys_socketcall+0x6d/0x178
 [&lt;c10da994&gt;] ? trace_hardirqs_on_thunk+0xc/0x10
 [&lt;c1002959&gt;] syscall_call+0x7/0xb

This was because the sctp_wait_for_connect() would aqcure the socket
lock and then proceed to release the last reference count on the
association, thus cause the fully destruction path to finish freeing
the socket.

The simplest solution is to start a very short timer in case the socket
is owned by user.  When the timer expires, we can do some verification
and be able to do the release properly.

Signed-off-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: fix compile error due to double return type in SOCK_DEBUG</title>
<updated>2010-05-02T20:42:39Z</updated>
<author>
<name>Jan Engelhardt</name>
<email>jengelh@medozas.de</email>
</author>
<published>2010-05-02T20:42:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1183f3838c588545592c042c0ce15015661ce7f2'/>
<id>urn:sha1:1183f3838c588545592c042c0ce15015661ce7f2</id>
<content type='text'>
Fix this one:
include/net/sock.h: error: two or more data types in declaration specifiers

Signed-off-by: Jan Engelhardt &lt;jengelh@medozas.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: Fix skb_over_panic resulting from multiple invalid parameter errors (CVE-2010-1173) (v4)</title>
<updated>2010-04-28T21:22:01Z</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2010-04-28T10:30:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5fa782c2f5ef6c2e4f04d3e228412c9b4a4c8809'/>
<id>urn:sha1:5fa782c2f5ef6c2e4f04d3e228412c9b4a4c8809</id>
<content type='text'>
Ok, version 4

Change Notes:
1) Minor cleanups, from Vlads notes

Summary:

Hey-
	Recently, it was reported to me that the kernel could oops in the
following way:

&lt;5&gt; kernel BUG at net/core/skbuff.c:91!
&lt;5&gt; invalid operand: 0000 [#1]
&lt;5&gt; Modules linked in: sctp netconsole nls_utf8 autofs4 sunrpc iptable_filter
ip_tables cpufreq_powersave parport_pc lp parport vmblock(U) vsock(U) vmci(U)
vmxnet(U) vmmemctl(U) vmhgfs(U) acpiphp dm_mirror dm_mod button battery ac md5
ipv6 uhci_hcd ehci_hcd snd_ens1371 snd_rawmidi snd_seq_device snd_pcm_oss
snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_ac97_codec snd soundcore
pcnet32 mii floppy ext3 jbd ata_piix libata mptscsih mptsas mptspi mptscsi
mptbase sd_mod scsi_mod
&lt;5&gt; CPU:    0
&lt;5&gt; EIP:    0060:[&lt;c02bff27&gt;]    Not tainted VLI
&lt;5&gt; EFLAGS: 00010216   (2.6.9-89.0.25.EL)
&lt;5&gt; EIP is at skb_over_panic+0x1f/0x2d
&lt;5&gt; eax: 0000002c   ebx: c033f461   ecx: c0357d96   edx: c040fd44
&lt;5&gt; esi: c033f461   edi: df653280   ebp: 00000000   esp: c040fd40
&lt;5&gt; ds: 007b   es: 007b   ss: 0068
&lt;5&gt; Process swapper (pid: 0, threadinfo=c040f000 task=c0370be0)
&lt;5&gt; Stack: c0357d96 e0c29478 00000084 00000004 c033f461 df653280 d7883180
e0c2947d
&lt;5&gt;        00000000 00000080 df653490 00000004 de4f1ac0 de4f1ac0 00000004
df653490
&lt;5&gt;        00000001 e0c2877a 08000800 de4f1ac0 df653490 00000000 e0c29d2e
00000004
&lt;5&gt; Call Trace:
&lt;5&gt;  [&lt;e0c29478&gt;] sctp_addto_chunk+0xb0/0x128 [sctp]
&lt;5&gt;  [&lt;e0c2947d&gt;] sctp_addto_chunk+0xb5/0x128 [sctp]
&lt;5&gt;  [&lt;e0c2877a&gt;] sctp_init_cause+0x3f/0x47 [sctp]
&lt;5&gt;  [&lt;e0c29d2e&gt;] sctp_process_unk_param+0xac/0xb8 [sctp]
&lt;5&gt;  [&lt;e0c29e90&gt;] sctp_verify_init+0xcc/0x134 [sctp]
&lt;5&gt;  [&lt;e0c20322&gt;] sctp_sf_do_5_1B_init+0x83/0x28e [sctp]
&lt;5&gt;  [&lt;e0c25333&gt;] sctp_do_sm+0x41/0x77 [sctp]
&lt;5&gt;  [&lt;c01555a4&gt;] cache_grow+0x140/0x233
&lt;5&gt;  [&lt;e0c26ba1&gt;] sctp_endpoint_bh_rcv+0xc5/0x108 [sctp]
&lt;5&gt;  [&lt;e0c2b863&gt;] sctp_inq_push+0xe/0x10 [sctp]
&lt;5&gt;  [&lt;e0c34600&gt;] sctp_rcv+0x454/0x509 [sctp]
&lt;5&gt;  [&lt;e084e017&gt;] ipt_hook+0x17/0x1c [iptable_filter]
&lt;5&gt;  [&lt;c02d005e&gt;] nf_iterate+0x40/0x81
&lt;5&gt;  [&lt;c02e0bb9&gt;] ip_local_deliver_finish+0x0/0x151
&lt;5&gt;  [&lt;c02e0c7f&gt;] ip_local_deliver_finish+0xc6/0x151
&lt;5&gt;  [&lt;c02d0362&gt;] nf_hook_slow+0x83/0xb5
&lt;5&gt;  [&lt;c02e0bb2&gt;] ip_local_deliver+0x1a2/0x1a9
&lt;5&gt;  [&lt;c02e0bb9&gt;] ip_local_deliver_finish+0x0/0x151
&lt;5&gt;  [&lt;c02e103e&gt;] ip_rcv+0x334/0x3b4
&lt;5&gt;  [&lt;c02c66fd&gt;] netif_receive_skb+0x320/0x35b
&lt;5&gt;  [&lt;e0a0928b&gt;] init_stall_timer+0x67/0x6a [uhci_hcd]
&lt;5&gt;  [&lt;c02c67a4&gt;] process_backlog+0x6c/0xd9
&lt;5&gt;  [&lt;c02c690f&gt;] net_rx_action+0xfe/0x1f8
&lt;5&gt;  [&lt;c012a7b1&gt;] __do_softirq+0x35/0x79
&lt;5&gt;  [&lt;c0107efb&gt;] handle_IRQ_event+0x0/0x4f
&lt;5&gt;  [&lt;c01094de&gt;] do_softirq+0x46/0x4d

Its an skb_over_panic BUG halt that results from processing an init chunk in
which too many of its variable length parameters are in some way malformed.

The problem is in sctp_process_unk_param:
if (NULL == *errp)
	*errp = sctp_make_op_error_space(asoc, chunk,
					 ntohs(chunk-&gt;chunk_hdr-&gt;length));

	if (*errp) {
		sctp_init_cause(*errp, SCTP_ERROR_UNKNOWN_PARAM,
				 WORD_ROUND(ntohs(param.p-&gt;length)));
		sctp_addto_chunk(*errp,
			WORD_ROUND(ntohs(param.p-&gt;length)),
				  param.v);

When we allocate an error chunk, we assume that the worst case scenario requires
that we have chunk_hdr-&gt;length data allocated, which would be correct nominally,
given that we call sctp_addto_chunk for the violating parameter.  Unfortunately,
we also, in sctp_init_cause insert a sctp_errhdr_t structure into the error
chunk, so the worst case situation in which all parameters are in violation
requires chunk_hdr-&gt;length+(sizeof(sctp_errhdr_t)*param_count) bytes of data.

The result of this error is that a deliberately malformed packet sent to a
listening host can cause a remote DOS, described in CVE-2010-1173:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2010-1173

I've tested the below fix and confirmed that it fixes the issue.  We move to a
strategy whereby we allocate a fixed size error chunk and ignore errors we don't
have space to report.  Tested by me successfully

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Acked-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: Fix oops when sending queued ASCONF chunks</title>
<updated>2010-04-28T19:16:34Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vladislav.yasevich@hp.com</email>
</author>
<published>2010-04-28T08:47:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c0786693404cffd80ca3cb6e75ee7b35186b2825'/>
<id>urn:sha1:c0786693404cffd80ca3cb6e75ee7b35186b2825</id>
<content type='text'>
When we finish processing ASCONF_ACK chunk, we try to send
the next queued ASCONF.  This action runs the sctp state
machine recursively and it's not prepared to do so.

kernel BUG at kernel/timer.c:790!
invalid opcode: 0000 [#1] SMP
last sysfs file: /sys/module/ipv6/initstate
Modules linked in: sha256_generic sctp libcrc32c ipv6 dm_multipath
uinput 8139too i2c_piix4 8139cp mii i2c_core pcspkr virtio_net joydev
floppy virtio_blk virtio_pci [last unloaded: scsi_wait_scan]

Pid: 0, comm: swapper Not tainted 2.6.34-rc4 #15 /Bochs
EIP: 0060:[&lt;c044a2ef&gt;] EFLAGS: 00010286 CPU: 0
EIP is at add_timer+0xd/0x1b
EAX: cecbab14 EBX: 000000f0 ECX: c0957b1c EDX: 03595cf4
ESI: cecba800 EDI: cf276f00 EBP: c0957aa0 ESP: c0957aa0
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process swapper (pid: 0, ti=c0956000 task=c0988ba0 task.ti=c0956000)
Stack:
 c0957ae0 d1851214 c0ab62e4 c0ab5f26 0500ffff 00000004 00000005 00000004
&lt;0&gt; 00000000 d18694fd 00000004 1666b892 cecba800 cecba800 c0957b14
00000004
&lt;0&gt; c0957b94 d1851b11 ceda8b00 cecba800 cf276f00 00000001 c0957b14
000000d0
Call Trace:
 [&lt;d1851214&gt;] ? sctp_side_effects+0x607/0xdfc [sctp]
 [&lt;d1851b11&gt;] ? sctp_do_sm+0x108/0x159 [sctp]
 [&lt;d1863386&gt;] ? sctp_pname+0x0/0x1d [sctp]
 [&lt;d1861a56&gt;] ? sctp_primitive_ASCONF+0x36/0x3b [sctp]
 [&lt;d185657c&gt;] ? sctp_process_asconf_ack+0x2a4/0x2d3 [sctp]
 [&lt;d184e35c&gt;] ? sctp_sf_do_asconf_ack+0x1dd/0x2b4 [sctp]
 [&lt;d1851ac1&gt;] ? sctp_do_sm+0xb8/0x159 [sctp]
 [&lt;d1863334&gt;] ? sctp_cname+0x0/0x52 [sctp]
 [&lt;d1854377&gt;] ? sctp_assoc_bh_rcv+0xac/0xe1 [sctp]
 [&lt;d1858f0f&gt;] ? sctp_inq_push+0x2d/0x30 [sctp]
 [&lt;d186329d&gt;] ? sctp_rcv+0x797/0x82e [sctp]

Tested-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: Yuansong Qiao &lt;ysqiao@research.ait.ie&gt;
Signed-off-by: Shuaijun Zhang &lt;szhang@research.ait.ie&gt;
Signed-off-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: avoid irq lock inversion while call sk-&gt;sk_data_ready()</title>
<updated>2010-04-28T19:16:31Z</updated>
<author>
<name>Wei Yongjun</name>
<email>yjwei@cn.fujitsu.com</email>
</author>
<published>2010-04-28T08:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=561b1733a465cf9677356b40c27653dd45f1ac56'/>
<id>urn:sha1:561b1733a465cf9677356b40c27653dd45f1ac56</id>
<content type='text'>
sk-&gt;sk_data_ready() of sctp socket can be called from both BH and non-BH
contexts, but the default sk-&gt;sk_data_ready(), sock_def_readable(), can
not be used in this case. Therefore, we have to make a new function
sctp_data_ready() to grab sk-&gt;sk_data_ready() with BH disabling.

=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.33-rc6 #129
---------------------------------------------------------
sctp_darn/1517 just changed the state of lock:
 (clock-AF_INET){++.?..}, at: [&lt;c06aab60&gt;] sock_def_readable+0x20/0x80
but this lock took another, SOFTIRQ-unsafe lock in the past:
 (slock-AF_INET){+.-...}

and interrupts could create inverse lock ordering between them.

other info that might help us debug this:
1 lock held by sctp_darn/1517:
 #0:  (sk_lock-AF_INET){+.+.+.}, at: [&lt;cdfe363d&gt;] sctp_sendmsg+0x23d/0xc00 [sctp]

Signed-off-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of /home/davem/src/GIT/linux-2.6/</title>
<updated>2010-04-11T09:44:30Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-04-11T09:44:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4a1032faac94ebbf647460ae3e06fc21146eb280'/>
<id>urn:sha1:4a1032faac94ebbf647460ae3e06fc21146eb280</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x25: Patch to fix bug 15678 - x25 accesses fields beyond end of packet.</title>
<updated>2010-04-08T04:29:25Z</updated>
<author>
<name>John Hughes</name>
<email>john@calva.com</email>
</author>
<published>2010-04-08T04:29:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f5eb917b861828da18dc28854308068c66d1449a'/>
<id>urn:sha1:f5eb917b861828da18dc28854308068c66d1449a</id>
<content type='text'>
Here is a patch to stop X.25 examining fields beyond the end of the packet.

For example, when a simple CALL ACCEPTED was received:

	10 10 0f

x25_parse_facilities was attempting to decode the FACILITIES field, but this
packet contains no facilities field.

Signed-off-by: John Hughes &lt;john@calva.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs</title>
<updated>2010-04-05T20:42:54Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-04-05T20:42:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=749d229761ff0135cc4e16b8a28b41ae2f6b2c35'/>
<id>urn:sha1:749d229761ff0135cc4e16b8a28b41ae2f6b2c35</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
  9p: saving negative to unsigned char
  9p: return on mutex_lock_interruptible()
  9p: Creating files with names too long should fail with ENAMETOOLONG.
  9p: Make sure we are able to clunk the cached fid on umount
  9p: drop nlink remove
  fs/9p: Clunk the fid resulting from partial walk of the name
  9p: documentation update
  9p: Fix setting of protocol flags in v9fs_session_info structure.
</content>
</entry>
<entry>
<title>9p: Make sure we are able to clunk the cached fid on umount</title>
<updated>2010-04-05T15:37:36Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
<email>aneesh.kumar@linux.vnet.ibm.com</email>
</author>
<published>2010-03-29T23:13:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6d96d3ab7aea5f0e75205a0c97f8d1fdf82c5287'/>
<id>urn:sha1:6d96d3ab7aea5f0e75205a0c97f8d1fdf82c5287</id>
<content type='text'>
dcache prune happen on umount. So we cannot mark the client
satus disconnect. That will prevent a 9p call to the server

Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Eric Van Hensbergen &lt;ericvh@gmail.com&gt;


</content>
</entry>
</feed>
