]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit2af5348548398ef42c3feb553bb0debaebc69183
treea72c1b77d12c5a5257b3d21276d84e3873325f86
parente1d18fc262f51ac0b92410e4e5396cb5b2885219
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 6499159e4cb2 ("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: ebe85f5c1447 ("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