<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux-stable.git/net/sctp, branch linux-2.6.39.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-2.6.39.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-2.6.39.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/'/>
<updated>2011-06-03T00:31:56+00:00</updated>
<entry>
<title>sctp: fix memory leak of the ASCONF queue when free asoc</title>
<updated>2011-06-03T00:31:56+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yjwei@cn.fujitsu.com</email>
</author>
<published>2011-05-24T21:48:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5e29567e54ba77297911659047184b6d551e38e8'/>
<id>urn:sha1:5e29567e54ba77297911659047184b6d551e38e8</id>
<content type='text'>
[ Upstream commit 8b4472cc13136d04727e399c6fdadf58d2218b0a ]

If an ASCONF chunk is outstanding, then the following ASCONF
chunk will be queued for later transmission. But when we free
the asoc, we forget to free the ASCONF queue at the same time,
this will cause memory leak.

Signed-off-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>SCTP: fix race between sctp_bind_addr_free() and sctp_bind_addr_conflict()</title>
<updated>2011-06-03T00:31:55+00:00</updated>
<author>
<name>Jacek Luczak</name>
<email>difrost.kernel@gmail.com</email>
</author>
<published>2011-05-19T09:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a0e3d9a50be5f6cffbc4fbc9e44105c5def26cf0'/>
<id>urn:sha1:a0e3d9a50be5f6cffbc4fbc9e44105c5def26cf0</id>
<content type='text'>
[ Upstream commit c182f90bc1f22ce5039b8722e45621d5f96862c2 ]

During the sctp_close() call, we do not use rcu primitives to
destroy the address list attached to the endpoint.  At the same
time, we do the removal of addresses from this list before
attempting to remove the socket from the port hash

As a result, it is possible for another process to find the socket
in the port hash that is in the process of being closed.  It then
proceeds to traverse the address list to find the conflict, only
to have that address list suddenly disappear without rcu() critical
section.

Fix issue by closing address list removal inside RCU critical
section.

Race can result in a kernel crash with general protection fault or
kernel NULL pointer dereference:

kernel: general protection fault: 0000 [#1] SMP
kernel: RIP: 0010:[&lt;ffffffffa02f3dde&gt;]  [&lt;ffffffffa02f3dde&gt;] sctp_bind_addr_conflict+0x64/0x82 [sctp]
kernel: Call Trace:
kernel:  [&lt;ffffffffa02f415f&gt;] ? sctp_get_port_local+0x17b/0x2a3 [sctp]
kernel:  [&lt;ffffffffa02f3d45&gt;] ? sctp_bind_addr_match+0x33/0x68 [sctp]
kernel:  [&lt;ffffffffa02f4416&gt;] ? sctp_do_bind+0xd3/0x141 [sctp]
kernel:  [&lt;ffffffffa02f5030&gt;] ? sctp_bindx_add+0x4d/0x8e [sctp]
kernel:  [&lt;ffffffffa02f5183&gt;] ? sctp_setsockopt_bindx+0x112/0x4a4 [sctp]
kernel:  [&lt;ffffffff81089e82&gt;] ? generic_file_aio_write+0x7f/0x9b
kernel:  [&lt;ffffffffa02f763e&gt;] ? sctp_setsockopt+0x14f/0xfee [sctp]
kernel:  [&lt;ffffffff810c11fb&gt;] ? do_sync_write+0xab/0xeb
kernel:  [&lt;ffffffff810e82ab&gt;] ? fsnotify+0x239/0x282
kernel:  [&lt;ffffffff810c2462&gt;] ? alloc_file+0x18/0xb1
kernel:  [&lt;ffffffff8134a0b1&gt;] ? compat_sys_setsockopt+0x1a5/0x1d9
kernel:  [&lt;ffffffff8134aaf1&gt;] ? compat_sys_socketcall+0x143/0x1a4
kernel:  [&lt;ffffffff810467dc&gt;] ? sysenter_dispatch+0x7/0x32

Signed-off-by: Jacek Luczak &lt;luczak.jacek@gmail.com&gt;
Acked-by: Vlad Yasevich &lt;vladislav.yasevich@hp.com&gt;
CC: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Reviewed-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>Revert wrong fixes for common misspellings</title>
<updated>2011-04-27T06:31:11+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-04-27T06:28:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e9c549998dc24209847007e1f209f3b6c88d21ba'/>
<id>urn:sha1:e9c549998dc24209847007e1f209f3b6c88d21ba</id>
<content type='text'>
These changes were incorrectly fixed by codespell. They were now
manually corrected.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
</entry>
<entry>
<title>sctp: fix oops while removed transport still using as retran path</title>
<updated>2011-04-13T02:33:51+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yjwei@cn.fujitsu.com</email>
</author>
<published>2011-04-12T15:22:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9494c7c5774d64a84a269aad38c153c4dbff97e6'/>
<id>urn:sha1:9494c7c5774d64a84a269aad38c153c4dbff97e6</id>
<content type='text'>
Since we can not update retran path to unconfirmed transports,
when we remove a peer, the retran path may not be update if the
other transports are all unconfirmed, and we will still using
the removed transport as the retran path. This may cause panic
if retrasnmit happen.

Signed-off-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: fix oops when updating retransmit path with DEBUG on</title>
<updated>2011-04-13T02:33:50+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vladislav.yasevich@hp.com</email>
</author>
<published>2011-04-12T15:20:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=25f7bf7d0dfb460505cbe42676340e33100aca2e'/>
<id>urn:sha1:25f7bf7d0dfb460505cbe42676340e33100aca2e</id>
<content type='text'>
commit fbdf501c9374966a56829ecca3a7f25d2b49a305
  sctp: Do no select unconfirmed transports for retransmissions

Introduced the initial falt.

commit d598b166ced20d9b9281ea3527c0e18405ddb803
  sctp: Make sure we always return valid retransmit path

Solved the problem, but forgot to change the DEBUG statement.
Thus it was still possible to dereference a NULL pointer.

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 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6</title>
<updated>2011-04-07T18:14:49+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-04-07T18:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=42933bac11e811f02200c944d8562a15f8ec4ff0'/>
<id>urn:sha1:42933bac11e811f02200c944d8562a15f8ec4ff0</id>
<content type='text'>
* 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6:
  Fix common misspellings
</content>
</entry>
<entry>
<title>sctp: malloc enough room for asconf-ack chunk</title>
<updated>2011-04-02T04:45:51+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yjwei@cn.fujitsu.com</email>
</author>
<published>2011-03-31T23:42:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2cab86bee8e7f353e6ac8c15b3eb906643497644'/>
<id>urn:sha1:2cab86bee8e7f353e6ac8c15b3eb906643497644</id>
<content type='text'>
Sometime the ASCONF_ACK parameters can equal to the fourfold of
ASCONF parameters, this only happend in some special case:

  ASCONF parameter is :
    Unrecognized Parameter (4 bytes)
  ASCONF_ACK parameter should be:
    Error Cause Indication parameter (8 bytes header)
     + Error Cause (4 bytes header)
       + Unrecognized Parameter (4bytes)

Four 4bytes Unrecognized Parameters in ASCONF chunk will cause panic.

Pid: 0, comm: swapper Not tainted 2.6.38-next+ #22 Bochs Bochs
EIP: 0060:[&lt;c0717eae&gt;] EFLAGS: 00010246 CPU: 0
EIP is at skb_put+0x60/0x70
EAX: 00000077 EBX: c09060e2 ECX: dec1dc30 EDX: c09469c0
ESI: 00000000 EDI: de3c8d40 EBP: dec1dc58 ESP: dec1dc2c
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process swapper (pid: 0, ti=dec1c000 task=c09aef20 task.ti=c0980000)
Stack:
 c09469c0 e1894fa4 00000044 00000004 de3c8d00 de3c8d00 de3c8d44 de3c8d40
 c09060e2 de25dd80 de3c8d40 dec1dc7c e1894fa4 dec1dcb0 00000040 00000004
 00000000 00000800 00000004 00000004 dec1dce0 e1895a2b dec1dcb4 de25d960
Call Trace:
 [&lt;e1894fa4&gt;] ? sctp_addto_chunk+0x4e/0x89 [sctp]
 [&lt;e1894fa4&gt;] sctp_addto_chunk+0x4e/0x89 [sctp]
 [&lt;e1895a2b&gt;] sctp_process_asconf+0x32f/0x3d1 [sctp]
 [&lt;e188d554&gt;] sctp_sf_do_asconf+0xf8/0x173 [sctp]
 [&lt;e1890b02&gt;] sctp_do_sm+0xb8/0x159 [sctp]
 [&lt;e18a2248&gt;] ? sctp_cname+0x0/0x52 [sctp]
 [&lt;e189392d&gt;] sctp_assoc_bh_rcv+0xac/0xe3 [sctp]
 [&lt;e1897d76&gt;] sctp_inq_push+0x2d/0x30 [sctp]
 [&lt;e18a21b2&gt;] sctp_rcv+0x7a7/0x83d [sctp]
 [&lt;c077a95c&gt;] ? ipv4_confirm+0x118/0x125
 [&lt;c073a970&gt;] ? nf_iterate+0x34/0x62
 [&lt;c074789d&gt;] ? ip_local_deliver_finish+0x0/0x194
 [&lt;c074789d&gt;] ? ip_local_deliver_finish+0x0/0x194
 [&lt;c0747992&gt;] ip_local_deliver_finish+0xf5/0x194
 [&lt;c074789d&gt;] ? ip_local_deliver_finish+0x0/0x194
 [&lt;c0747a6e&gt;] NF_HOOK.clone.1+0x3d/0x44
 [&lt;c0747ab3&gt;] ip_local_deliver+0x3e/0x44
 [&lt;c074789d&gt;] ? ip_local_deliver_finish+0x0/0x194
 [&lt;c074775c&gt;] ip_rcv_finish+0x29f/0x2c7
 [&lt;c07474bd&gt;] ? ip_rcv_finish+0x0/0x2c7
 [&lt;c0747a6e&gt;] NF_HOOK.clone.1+0x3d/0x44
 [&lt;c0747cae&gt;] ip_rcv+0x1f5/0x233
 [&lt;c07474bd&gt;] ? ip_rcv_finish+0x0/0x2c7
 [&lt;c071dce3&gt;] __netif_receive_skb+0x310/0x336
 [&lt;c07221f3&gt;] netif_receive_skb+0x4b/0x51
 [&lt;e0a4ed3d&gt;] cp_rx_poll+0x1e7/0x29c [8139cp]
 [&lt;c072275e&gt;] net_rx_action+0x65/0x13a
 [&lt;c0445a54&gt;] __do_softirq+0xa1/0x149
 [&lt;c04459b3&gt;] ? __do_softirq+0x0/0x149
 &lt;IRQ&gt;
 [&lt;c0445891&gt;] ? irq_exit+0x37/0x72
 [&lt;c040a7e9&gt;] ? do_IRQ+0x81/0x95
 [&lt;c07b3670&gt;] ? common_interrupt+0x30/0x38
 [&lt;c0428058&gt;] ? native_safe_halt+0xa/0xc
 [&lt;c040f5d7&gt;] ? default_idle+0x58/0x92
 [&lt;c0408fb0&gt;] ? cpu_idle+0x96/0xb2
 [&lt;c0797989&gt;] ? rest_init+0x5d/0x5f
 [&lt;c09fd90c&gt;] ? start_kernel+0x34b/0x350
 [&lt;c09fd0cb&gt;] ? i386_start_kernel+0xba/0xc1

Signed-off-by: Wei Yongjun &lt;yjwei@cn.fujitsu.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Fix common misspellings</title>
<updated>2011-03-31T14:26:23+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>urn:sha1:25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
</entry>
<entry>
<title>sctp: Pass __GFP_NOWARN to hash table allocation attempts.</title>
<updated>2011-03-31T00:51:36+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-03-31T00:51:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a84b50ceb7d640437d0dc28a2bef0d0de054de89'/>
<id>urn:sha1:a84b50ceb7d640437d0dc28a2bef0d0de054de89</id>
<content type='text'>
Like DCCP and other similar pieces of code, there are mechanisms
here to try allocating smaller hash tables if the allocation
fails.  So pass in __GFP_NOWARN like the others do instead of
emitting a scary message.

Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: Convert to use flowi6 where applicable.</title>
<updated>2011-03-12T23:08:54+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-03-12T21:22:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4c9483b2fb5d2548c3cc1fe03cdd4484ceeb5d1c'/>
<id>urn:sha1:4c9483b2fb5d2548c3cc1fe03cdd4484ceeb5d1c</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
