<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/sctp/sm_sideeffect.c, branch linux-5.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-09-04T22:29:21Z</updated>
<entry>
<title>sctp: use transport pf_retrans in sctp_do_8_2_transport_strike</title>
<updated>2019-09-04T22:29:21Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2019-09-02T15:24:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=10eb56c582c557c629271f1ee31e15e7a9b2558b'/>
<id>urn:sha1:10eb56c582c557c629271f1ee31e15e7a9b2558b</id>
<content type='text'>
Transport should use its own pf_retrans to do the error_count
check, instead of asoc's. Otherwise, it's meaningless to make
pf_retrans per transport.

Fixes: 5aa93bcf66f4 ("sctp: Implement quick failover draft from tsvwg")
Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Acked-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: fix the transport error_count check</title>
<updated>2019-08-14T02:08:20Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2019-08-12T12:49:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a1794de8b92ea6bc2037f445b296814ac826693e'/>
<id>urn:sha1:a1794de8b92ea6bc2037f445b296814ac826693e</id>
<content type='text'>
As the annotation says in sctp_do_8_2_transport_strike():

  "If the transport error count is greater than the pf_retrans
   threshold, and less than pathmaxrtx ..."

It should be transport-&gt;error_count checked with pathmaxrxt,
instead of asoc-&gt;pf_retrans.

Fixes: 5aa93bcf66f4 ("sctp: Implement quick failover draft from tsvwg")
Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@netronome.com&gt;
</content>
</entry>
<entry>
<title>Fix memory leak in sctp_process_init</title>
<updated>2019-06-06T00:11:47Z</updated>
<author>
<name>Neil Horman</name>
</author>
<published>2019-06-03T20:32:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0a8dd9f67cd0da7dc284f48b032ce00db1a68791'/>
<id>urn:sha1:0a8dd9f67cd0da7dc284f48b032ce00db1a68791</id>
<content type='text'>
syzbot found the following leak in sctp_process_init
BUG: memory leak
unreferenced object 0xffff88810ef68400 (size 1024):
  comm "syz-executor273", pid 7046, jiffies 4294945598 (age 28.770s)
  hex dump (first 32 bytes):
    1d de 28 8d de 0b 1b e3 b5 c2 f9 68 fd 1a 97 25  ..(........h...%
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;00000000a02cebbd&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55
[inline]
    [&lt;00000000a02cebbd&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;00000000a02cebbd&gt;] slab_alloc mm/slab.c:3326 [inline]
    [&lt;00000000a02cebbd&gt;] __do_kmalloc mm/slab.c:3658 [inline]
    [&lt;00000000a02cebbd&gt;] __kmalloc_track_caller+0x15d/0x2c0 mm/slab.c:3675
    [&lt;000000009e6245e6&gt;] kmemdup+0x27/0x60 mm/util.c:119
    [&lt;00000000dfdc5d2d&gt;] kmemdup include/linux/string.h:432 [inline]
    [&lt;00000000dfdc5d2d&gt;] sctp_process_init+0xa7e/0xc20
net/sctp/sm_make_chunk.c:2437
    [&lt;00000000b58b62f8&gt;] sctp_cmd_process_init net/sctp/sm_sideeffect.c:682
[inline]
    [&lt;00000000b58b62f8&gt;] sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1384
[inline]
    [&lt;00000000b58b62f8&gt;] sctp_side_effects net/sctp/sm_sideeffect.c:1194
[inline]
    [&lt;00000000b58b62f8&gt;] sctp_do_sm+0xbdc/0x1d60 net/sctp/sm_sideeffect.c:1165
    [&lt;0000000044e11f96&gt;] sctp_assoc_bh_rcv+0x13c/0x200
net/sctp/associola.c:1074
    [&lt;00000000ec43804d&gt;] sctp_inq_push+0x7f/0xb0 net/sctp/inqueue.c:95
    [&lt;00000000726aa954&gt;] sctp_backlog_rcv+0x5e/0x2a0 net/sctp/input.c:354
    [&lt;00000000d9e249a8&gt;] sk_backlog_rcv include/net/sock.h:950 [inline]
    [&lt;00000000d9e249a8&gt;] __release_sock+0xab/0x110 net/core/sock.c:2418
    [&lt;00000000acae44fa&gt;] release_sock+0x37/0xd0 net/core/sock.c:2934
    [&lt;00000000963cc9ae&gt;] sctp_sendmsg+0x2c0/0x990 net/sctp/socket.c:2122
    [&lt;00000000a7fc7565&gt;] inet_sendmsg+0x64/0x120 net/ipv4/af_inet.c:802
    [&lt;00000000b732cbd3&gt;] sock_sendmsg_nosec net/socket.c:652 [inline]
    [&lt;00000000b732cbd3&gt;] sock_sendmsg+0x54/0x70 net/socket.c:671
    [&lt;00000000274c57ab&gt;] ___sys_sendmsg+0x393/0x3c0 net/socket.c:2292
    [&lt;000000008252aedb&gt;] __sys_sendmsg+0x80/0xf0 net/socket.c:2330
    [&lt;00000000f7bf23d1&gt;] __do_sys_sendmsg net/socket.c:2339 [inline]
    [&lt;00000000f7bf23d1&gt;] __se_sys_sendmsg net/socket.c:2337 [inline]
    [&lt;00000000f7bf23d1&gt;] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2337
    [&lt;00000000a8b4131f&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:3

The problem was that the peer.cookie value points to an skb allocated
area on the first pass through this function, at which point it is
overwritten with a heap allocated value, but in certain cases, where a
COOKIE_ECHO chunk is included in the packet, a second pass through
sctp_process_init is made, where the cookie value is re-allocated,
leaking the first allocation.

Fix is to always allocate the cookie value, and free it when we are done
using it.

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Reported-by: syzbot+f7e9153b037eac9b1df8@syzkaller.appspotmail.com
CC: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
CC: "David S. Miller" &lt;davem@davemloft.net&gt;
CC: netdev@vger.kernel.org
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 104</title>
<updated>2019-05-24T15:39:00Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2019-05-23T09:14:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=47505b8bcfcffffe878ea1fee412922f3bfd7262'/>
<id>urn:sha1:47505b8bcfcffffe878ea1fee412922f3bfd7262</id>
<content type='text'>
Based on 1 normalized pattern(s):

  this sctp implementation is free software you can redistribute it
  and or modify it under the terms of the gnu general public license
  as published by the free software foundation either version 2 or at
  your option any later version this sctp implementation is
  distributed in the hope that it will be useful but without any
  warranty without even the implied warranty of merchantability or
  fitness for a particular purpose see the gnu general public license
  for more details you should have received a copy of the gnu general
  public license along with gnu cc see the file copying if not see
  http www gnu org licenses

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 42 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;
Reviewed-by: Richard Fontana &lt;rfontana@redhat.com&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190523091649.683323110@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sctp: avoid running the sctp state machine recursively</title>
<updated>2019-05-01T13:18:57Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2019-04-29T06:16:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fbd019737d71e405f86549fd738f81e2ff3dd073'/>
<id>urn:sha1:fbd019737d71e405f86549fd738f81e2ff3dd073</id>
<content type='text'>
Ying triggered a call trace when doing an asconf testing:

  BUG: scheduling while atomic: swapper/12/0/0x10000100
  Call Trace:
   &lt;IRQ&gt;  [&lt;ffffffffa4375904&gt;] dump_stack+0x19/0x1b
   [&lt;ffffffffa436fcaf&gt;] __schedule_bug+0x64/0x72
   [&lt;ffffffffa437b93a&gt;] __schedule+0x9ba/0xa00
   [&lt;ffffffffa3cd5326&gt;] __cond_resched+0x26/0x30
   [&lt;ffffffffa437bc4a&gt;] _cond_resched+0x3a/0x50
   [&lt;ffffffffa3e22be8&gt;] kmem_cache_alloc_node+0x38/0x200
   [&lt;ffffffffa423512d&gt;] __alloc_skb+0x5d/0x2d0
   [&lt;ffffffffc0995320&gt;] sctp_packet_transmit+0x610/0xa20 [sctp]
   [&lt;ffffffffc098510e&gt;] sctp_outq_flush+0x2ce/0xc00 [sctp]
   [&lt;ffffffffc098646c&gt;] sctp_outq_uncork+0x1c/0x20 [sctp]
   [&lt;ffffffffc0977338&gt;] sctp_cmd_interpreter.isra.22+0xc8/0x1460 [sctp]
   [&lt;ffffffffc0976ad1&gt;] sctp_do_sm+0xe1/0x350 [sctp]
   [&lt;ffffffffc099443d&gt;] sctp_primitive_ASCONF+0x3d/0x50 [sctp]
   [&lt;ffffffffc0977384&gt;] sctp_cmd_interpreter.isra.22+0x114/0x1460 [sctp]
   [&lt;ffffffffc0976ad1&gt;] sctp_do_sm+0xe1/0x350 [sctp]
   [&lt;ffffffffc097b3a4&gt;] sctp_assoc_bh_rcv+0xf4/0x1b0 [sctp]
   [&lt;ffffffffc09840f1&gt;] sctp_inq_push+0x51/0x70 [sctp]
   [&lt;ffffffffc099732b&gt;] sctp_rcv+0xa8b/0xbd0 [sctp]

As it shows, the first sctp_do_sm() running under atomic context (NET_RX
softirq) invoked sctp_primitive_ASCONF() that uses GFP_KERNEL flag later,
and this flag is supposed to be used in non-atomic context only. Besides,
sctp_do_sm() was called recursively, which is not expected.

Vlad tried to fix this recursive call in Commit c0786693404c ("sctp: Fix
oops when sending queued ASCONF chunks") by introducing a new command
SCTP_CMD_SEND_NEXT_ASCONF. But it didn't work as this command is still
used in the first sctp_do_sm() call, and sctp_primitive_ASCONF() will
be called in this command again.

To avoid calling sctp_do_sm() recursively, we send the next queued ASCONF
not by sctp_primitive_ASCONF(), but by sctp_sf_do_prm_asconf() in the 1st
sctp_do_sm() directly.

Reported-by: Ying Xu &lt;yinxu@redhat.com&gt;
Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Acked-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: rename enum sctp_event to sctp_event_type</title>
<updated>2018-11-19T20:25:43Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2018-11-18T08:08:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88ee48c1f3b7092414fb93c3cf0838ba24f62e16'/>
<id>urn:sha1:88ee48c1f3b7092414fb93c3cf0838ba24f62e16</id>
<content type='text'>
sctp_event is a structure name defined in RFC for sockopt
SCTP_EVENT. To avoid the conflict, rename it.

Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: whitespace fixes</title>
<updated>2018-07-24T21:10:42Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2018-07-24T19:29:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aa46225235efc687d971351a309b734549ca5718'/>
<id>urn:sha1:aa46225235efc687d971351a309b734549ca5718</id>
<content type='text'>
Remove blank line at EOF and trailing whitespace.

Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: add SCTP_AUTH_NO_AUTH type for AUTHENTICATION_EVENT</title>
<updated>2018-03-14T17:48:27Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2018-03-14T11:05:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30f6ebf65bc46161c5aaff1db2e6e7c76aa4a06b'/>
<id>urn:sha1:30f6ebf65bc46161c5aaff1db2e6e7c76aa4a06b</id>
<content type='text'>
This patch is to add SCTP_AUTH_NO_AUTH type for AUTHENTICATION_EVENT,
as described in section 6.1.8 of RFC6458.

      SCTP_AUTH_NO_AUTH:  This report indicates that the peer does not
         support SCTP authentication as defined in [RFC4895].

Note that the implementation is quite similar as that of
SCTP_ADAPTATION_INDICATION.

Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: tracepoint: using sock_set_state tracepoint to trace SCTP state transition</title>
<updated>2017-12-20T19:00:25Z</updated>
<author>
<name>Yafang Shao</name>
</author>
<published>2017-12-20T03:12:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cbabf46364b27d08335fef37ecd7a8b89a1c8e07'/>
<id>urn:sha1:cbabf46364b27d08335fef37ecd7a8b89a1c8e07</id>
<content type='text'>
With changes in inet_ files, SCTP state transitions are traced with
inet_sock_set_state tracepoint.
As SCTP state names, i.e. SCTP_SS_CLOSED, SCTP_SS_ESTABLISHED,
have the same value with TCP state names. So the output info still print
the TCP state names, that makes the code easy.

Signed-off-by: Yafang Shao &lt;laoar.shao@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sctp: implement handle_ftsn for sctp_stream_interleave</title>
<updated>2017-12-15T18:52:22Z</updated>
<author>
<name>Xin Long</name>
</author>
<published>2017-12-14T16:41:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de60fe9105431f504de9f8793b1da237a7d7f7ed'/>
<id>urn:sha1:de60fe9105431f504de9f8793b1da237a7d7f7ed</id>
<content type='text'>
handle_ftsn is added as a member of sctp_stream_interleave, used to skip
ssn for data or mid for idata, called for SCTP_CMD_PROCESS_FWDTSN cmd.

sctp_handle_iftsn works for ifwdtsn, and sctp_handle_fwdtsn works for
fwdtsn. Note that different from sctp_handle_fwdtsn, sctp_handle_iftsn
could do stream abort pd.

Signed-off-by: Xin Long &lt;lucien.xin@gmail.com&gt;
Acked-by: Marcelo R. Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
