svn commit: r345465 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Sun Mar 24 09:46:17 UTC 2019


Author: tuexen
Date: Sun Mar 24 09:46:16 2019
New Revision: 345465
URL: https://svnweb.freebsd.org/changeset/base/345465

Log:
  Fix a signed/unsigned bug when receiving SCTP messages.
  This is joint work with rrs at .
  
  Reported by:		syzbot+6b8a4bc8cc828e9d9790 at syzkaller.appspotmail.com
  MFC after:		1 week

Modified:
  head/sys/netinet/sctputil.c

Modified: head/sys/netinet/sctputil.c
==============================================================================
--- head/sys/netinet/sctputil.c	Sun Mar 24 06:28:25 2019	(r345464)
+++ head/sys/netinet/sctputil.c	Sun Mar 24 09:46:16 2019	(r345465)
@@ -5219,8 +5219,9 @@ sctp_sorecvmsg(struct socket *so,
 	 *
 	 */
 	struct sctp_inpcb *inp = NULL;
-	int my_len = 0;
-	int cp_len = 0, error = 0;
+	size_t my_len = 0;
+	size_t cp_len = 0;
+	int error = 0;
 	struct sctp_queued_to_read *control = NULL, *ctl = NULL, *nxt = NULL;
 	struct mbuf *m = NULL;
 	struct sctp_tcb *stcb = NULL;
@@ -5728,8 +5729,8 @@ get_more_data:
 		m = control->data;
 		while (m) {
 			/* Move out all we can */
-			cp_len = (int)uio->uio_resid;
-			my_len = (int)SCTP_BUF_LEN(m);
+			cp_len = uio->uio_resid;
+			my_len = SCTP_BUF_LEN(m);
 			if (cp_len > my_len) {
 				/* not enough in this buf */
 				cp_len = my_len;


More information about the svn-src-head mailing list