sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
authorXin Long <lucien.xin@gmail.com>
Mon, 29 Oct 2018 15:10:29 +0000 (23:10 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Dec 2018 08:42:51 +0000 (09:42 +0100)
commit8376fdc999be008f0e9918db52f1ed8c08f5a1c9
tree74dc964dc1d9e94257147fc3b5765eaf04fe80c6
parentbc94cd6d869ea0ac78936b14321d37bdea657ba4
sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer

commit df132eff463873e14e019a07f387b4d577d6d1f9 upstream.

If a transport is removed by asconf but there still are some chunks with
this transport queuing on out_chunk_list, later an use-after-free issue
will be caused when accessing this transport from these chunks in
sctp_outq_flush().

This is an old bug, we fix it by clearing the transport of these chunks
in out_chunk_list when removing a transport in sctp_assoc_rm_peer().

Reported-by: syzbot+56a40ceee5fb35932f4d@syzkaller.appspotmail.com
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sctp/associola.c