diff mbox series

[net-next] sctp: fix error return code in sctp_send_add_streams()

Message ID 1509456496-93944-1-git-send-email-weiyongjun1@huawei.com
State Accepted, archived
Delegated to: David Miller
Headers show
Series [net-next] sctp: fix error return code in sctp_send_add_streams() | expand

Commit Message

Wei Yongjun Oct. 31, 2017, 1:28 p.m. UTC
Fix to returnerror code -ENOMEM from the sctp_make_strreset_addstrm()
error handling case instead of 0. 'retval' can be overwritten to 0 after
call sctp_stream_alloc_out().

Fixes: e090abd0d81c ("sctp: factor out stream->out allocation")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 net/sctp/stream.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Marcelo Ricardo Leitner Oct. 31, 2017, 1:33 p.m. UTC | #1
On Tue, Oct 31, 2017 at 01:28:16PM +0000, Wei Yongjun wrote:
> Fix to returnerror code -ENOMEM from the sctp_make_strreset_addstrm()
> error handling case instead of 0. 'retval' can be overwritten to 0 after
> call sctp_stream_alloc_out().
> 
> Fixes: e090abd0d81c ("sctp: factor out stream->out allocation")
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>

> ---
>  net/sctp/stream.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sctp/stream.c b/net/sctp/stream.c
> index 03764fc..b8c8cab 100644
> --- a/net/sctp/stream.c
> +++ b/net/sctp/stream.c
> @@ -393,7 +393,7 @@ int sctp_send_add_streams(struct sctp_association *asoc,
>  {
>  	struct sctp_stream *stream = &asoc->stream;
>  	struct sctp_chunk *chunk = NULL;
> -	int retval = -ENOMEM;
> +	int retval;
>  	__u32 outcnt, incnt;
>  	__u16 out, in;
>  
> @@ -425,8 +425,10 @@ int sctp_send_add_streams(struct sctp_association *asoc,
>  	}
>  
>  	chunk = sctp_make_strreset_addstrm(asoc, out, in);
> -	if (!chunk)
> +	if (!chunk) {
> +		retval = -ENOMEM;
>  		goto out;
> +	}
>  
>  	asoc->strreset_chunk = chunk;
>  	sctp_chunk_hold(asoc->strreset_chunk);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Neil Horman Oct. 31, 2017, 5:06 p.m. UTC | #2
On Tue, Oct 31, 2017 at 01:28:16PM +0000, Wei Yongjun wrote:
> Fix to returnerror code -ENOMEM from the sctp_make_strreset_addstrm()
> error handling case instead of 0. 'retval' can be overwritten to 0 after
> call sctp_stream_alloc_out().
> 
> Fixes: e090abd0d81c ("sctp: factor out stream->out allocation")
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
> ---
>  net/sctp/stream.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sctp/stream.c b/net/sctp/stream.c
> index 03764fc..b8c8cab 100644
> --- a/net/sctp/stream.c
> +++ b/net/sctp/stream.c
> @@ -393,7 +393,7 @@ int sctp_send_add_streams(struct sctp_association *asoc,
>  {
>  	struct sctp_stream *stream = &asoc->stream;
>  	struct sctp_chunk *chunk = NULL;
> -	int retval = -ENOMEM;
> +	int retval;
>  	__u32 outcnt, incnt;
>  	__u16 out, in;
>  
> @@ -425,8 +425,10 @@ int sctp_send_add_streams(struct sctp_association *asoc,
>  	}
>  
>  	chunk = sctp_make_strreset_addstrm(asoc, out, in);
> -	if (!chunk)
> +	if (!chunk) {
> +		retval = -ENOMEM;
>  		goto out;
> +	}
>  
>  	asoc->strreset_chunk = chunk;
>  	sctp_chunk_hold(asoc->strreset_chunk);
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Acked-by: Neil Horman <nhorman@tuxdriver.com>
David Miller Nov. 1, 2017, 12:26 p.m. UTC | #3
From: Wei Yongjun <weiyongjun1@huawei.com>
Date: Tue, 31 Oct 2017 13:28:16 +0000

> Fix to returnerror code -ENOMEM from the sctp_make_strreset_addstrm()
> error handling case instead of 0. 'retval' can be overwritten to 0 after
> call sctp_stream_alloc_out().
> 
> Fixes: e090abd0d81c ("sctp: factor out stream->out allocation")
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

Applied.
diff mbox series

Patch

diff --git a/net/sctp/stream.c b/net/sctp/stream.c
index 03764fc..b8c8cab 100644
--- a/net/sctp/stream.c
+++ b/net/sctp/stream.c
@@ -393,7 +393,7 @@  int sctp_send_add_streams(struct sctp_association *asoc,
 {
 	struct sctp_stream *stream = &asoc->stream;
 	struct sctp_chunk *chunk = NULL;
-	int retval = -ENOMEM;
+	int retval;
 	__u32 outcnt, incnt;
 	__u16 out, in;
 
@@ -425,8 +425,10 @@  int sctp_send_add_streams(struct sctp_association *asoc,
 	}
 
 	chunk = sctp_make_strreset_addstrm(asoc, out, in);
-	if (!chunk)
+	if (!chunk) {
+		retval = -ENOMEM;
 		goto out;
+	}
 
 	asoc->strreset_chunk = chunk;
 	sctp_chunk_hold(asoc->strreset_chunk);