sctp: clear the new asoc's stream outcnt in sctp_stream_update
authorXin Long <lucien.xin@gmail.com>
Thu, 26 Apr 2018 07:21:44 +0000 (15:21 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Apr 2018 17:34:34 +0000 (13:34 -0400)
commit6a9a27d5397fc6c52f90c09ddab91e65053584aa
treea72c1b77d12c5a5257b3d21276d84e3873325f86
parent9306b38e42cb266f98bff6f6f4c1c652aa79ba45
sctp: clear the new asoc's stream outcnt in sctp_stream_update

When processing a duplicate cookie-echo chunk, sctp moves the new
temp asoc's stream out/in into the old asoc, and later frees this
new temp asoc.

But now after this move, the new temp asoc's stream->outcnt is not
cleared while stream->out is set to NULL, which would cause a same
crash as the one fixed in Commit 79d0895140e9 ("sctp: fix error
path in sctp_stream_init") when freeing this asoc later.

This fix is to clear this outcnt in sctp_stream_update.

Fixes: f952be79cebd ("sctp: introduce struct sctp_stream_out_ext")
Reported-by: Jianwen Ji <jiji@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/stream.c