From: Greg Kroah-Hartman Date: Tue, 13 Mar 2018 09:56:00 +0000 (+0100) Subject: fixup: sctp: verify size of a new chunk in _sctp_make_chunk() X-Git-Tag: v3.18.100~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8930f132b54a3abf0d12d506e9e9204ce23abb8;p=thirdparty%2Fkernel%2Fstable.git fixup: sctp: verify size of a new chunk in _sctp_make_chunk() Ben writes: > > + int chunklen; > > + > > + chunklen = sizeof(*chunk_hdr) + paylen; > > I think this length still needs to be rounded up (with WORD_ROUND here, > instead of SCTP_PAD4 upstream). So here's a fix for this problem. Reported-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c index 6d48cbf6465d0..bbf6abb6ae3c3 100644 --- a/net/sctp/sm_make_chunk.c +++ b/net/sctp/sm_make_chunk.c @@ -1369,7 +1369,7 @@ static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc, struct sock *sk; int chunklen; - chunklen = sizeof(*chunk_hdr) + paylen; + chunklen = WORD_ROUND(sizeof(*chunk_hdr) + paylen); if (chunklen > SCTP_MAX_CHUNK_LEN) goto nodata;