On Tue, May 23, 2017 at 01:28:54PM +0800, Xin Long wrote:
> Since commit 3dbcc105d556 ("sctp: alloc stream info when initializing
> asoc"), stream and stream.out info are always alloced when creating
> an asoc.
>
> So it's not correct to check !asoc->stream before updating stream
> info when processing dupcookie, but would be better to check asoc
> state instead.
>
> Fixes: 3dbcc105d556 ("sctp: alloc stream info when initializing asoc")
> Signed-off-by: Xin Long <lucien....@gmail.com>
> ---
> net/sctp/associola.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/sctp/associola.c b/net/sctp/associola.c
> index a9708da..9523828 100644
> --- a/net/sctp/associola.c
> +++ b/net/sctp/associola.c
> @@ -1176,7 +1176,9 @@ void sctp_assoc_update(struct sctp_association *asoc,
>
> asoc->ctsn_ack_point = asoc->next_tsn - 1;
> asoc->adv_peer_ack_point = asoc->ctsn_ack_point;
> - if (!asoc->stream) {
> +
> + if (sctp_state(asoc, COOKIE_WAIT)) {
> + sctp_stream_free(asoc->stream);
> asoc->stream = new->stream;
> new->stream = NULL;
> }
> --
> 2.1.0
>
>
Acked-by: Neil Horman <nhor...@tuxdriver.com>