Fix a signed/unsigned bug when receiving SCTP messages.
This is joint work with rrs@. Reported by: syzbot+6b8a4bc8cc828e9d9790@syzkaller.appspotmail.com MFC after: 1 week
This commit is contained in:
parent
91dfbef4aa
commit
0d3cf13dab
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user