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:47:58 +0000 (09:47 +0100)
commit26e51e5287eed4d96ea66a3da95429f42940f013
treed8156ff7a710999a8501974121901fecc784572b
parenteab1f5600c5c8eab71046f805c7132dcc0283711
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