From dc3e8bc964dcd8eb042159b2331ea168ded35eaf Mon Sep 17 00:00:00 2001 From: Tommi Rantala Date: Tue, 27 Nov 2012 04:01:46 +0000 Subject: [PATCH] --- yaml --- r: 336075 b: refs/heads/master c: be364c8c0f17a3dd42707b5a090b318028538eb9 h: refs/heads/master i: 336073: a80e9338e3ffaf3632e1108ededb34bdd6878dd6 336071: c531e1a8cc794830697b4b7c8fe088e173b88fdb v: v3 --- [refs] | 2 +- trunk/net/sctp/chunk.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 40c13f33b04c..bc333c121ae8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b49d3c1e1c948d76d64790abe9acffa9fa747d19 +refs/heads/master: be364c8c0f17a3dd42707b5a090b318028538eb9 diff --git a/trunk/net/sctp/chunk.c b/trunk/net/sctp/chunk.c index 7c2df9c33df3..f2aebdbb1eda 100644 --- a/trunk/net/sctp/chunk.c +++ b/trunk/net/sctp/chunk.c @@ -284,7 +284,7 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc, goto errout; err = sctp_user_addto_chunk(chunk, offset, len, msgh->msg_iov); if (err < 0) - goto errout; + goto errout_chunk_free; offset += len; @@ -324,7 +324,7 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc, __skb_pull(chunk->skb, (__u8 *)chunk->chunk_hdr - (__u8 *)chunk->skb->data); if (err < 0) - goto errout; + goto errout_chunk_free; sctp_datamsg_assign(msg, chunk); list_add_tail(&chunk->frag_list, &msg->chunks); @@ -332,6 +332,9 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc, return msg; +errout_chunk_free: + sctp_chunk_free(chunk); + errout: list_for_each_safe(pos, temp, &msg->chunks) { list_del_init(pos);