21 lines
608 B
Diff
21 lines
608 B
Diff
--- sys/netinet6/sctp6_usrreq.c.orig
|
|
+++ sys/netinet6/sctp6_usrreq.c
|
|
@@ -379,7 +379,6 @@
|
|
* XXX: We assume that when IPV6 is non NULL, M and OFF are
|
|
* valid.
|
|
*/
|
|
- /* check if we can safely examine src and dst ports */
|
|
struct sctp_inpcb *inp = NULL;
|
|
struct sctp_tcb *stcb = NULL;
|
|
struct sctp_nets *net = NULL;
|
|
@@ -388,6 +387,10 @@
|
|
if (ip6cp->ip6c_m == NULL)
|
|
return;
|
|
|
|
+ /* Check if we can safely examine the SCTP header. */
|
|
+ if (ip6cp->ip6c_m->m_pkthdr.len < ip6cp->ip6c_off + sizeof(sh))
|
|
+ return;
|
|
+
|
|
bzero(&sh, sizeof(sh));
|
|
bzero(&final, sizeof(final));
|
|
inp = NULL;
|