summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_indata.c
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2015-09-11 13:54:33 +0000
committertuexen <tuexen@FreeBSD.org>2015-09-11 13:54:33 +0000
commit1947f60716b5a3a2612c7b16ba4898e901485cee (patch)
treee53416c34da8ed9f891163299debd1888ca6fe02 /sys/netinet/sctp_indata.c
parentfcc54645c30d74ba4dd9407a5cb7ba4bc2271acd (diff)
downloadFreeBSD-src-1947f60716b5a3a2612c7b16ba4898e901485cee.zip
FreeBSD-src-1947f60716b5a3a2612c7b16ba4898e901485cee.tar.gz
Ensure that ERROR chunks are always padded by implementing this
in the routine, which queues an ERROR chunk, instead on relyinh on the callers to do so. Since one caller missed this, this actially fixes a bug. MFC after: 1 week
Diffstat (limited to 'sys/netinet/sctp_indata.c')
-rw-r--r--sys/netinet/sctp_indata.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c
index 7d92655..d9ca669 100644
--- a/sys/netinet/sctp_indata.c
+++ b/sys/netinet/sctp_indata.c
@@ -2513,11 +2513,7 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
SCTP_BUF_LEN(merr) = sizeof(*phd);
SCTP_BUF_NEXT(merr) = SCTP_M_COPYM(m, *offset, chk_length, M_NOWAIT);
if (SCTP_BUF_NEXT(merr)) {
- if (sctp_pad_lastmbuf(SCTP_BUF_NEXT(merr), SCTP_SIZE32(chk_length) - chk_length, NULL) == NULL) {
- sctp_m_freem(merr);
- } else {
- sctp_queue_op_err(stcb, merr);
- }
+ sctp_queue_op_err(stcb, merr);
} else {
sctp_m_freem(merr);
}
OpenPOWER on IntegriCloud