mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-09-08 00:00:13 +02:00
io: fix integer overflow in take (#6080)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
use crate::io::{AsyncBufRead, AsyncRead, ReadBuf};
|
use crate::io::{AsyncBufRead, AsyncRead, ReadBuf};
|
||||||
|
|
||||||
use pin_project_lite::pin_project;
|
use pin_project_lite::pin_project;
|
||||||
|
use std::convert::TryFrom;
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
use std::task::{Context, Poll};
|
use std::task::{Context, Poll};
|
||||||
use std::{cmp, io};
|
use std::{cmp, io};
|
||||||
@@ -85,7 +86,7 @@ impl<R: AsyncRead> AsyncRead for Take<R> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let me = self.project();
|
let me = self.project();
|
||||||
let mut b = buf.take(*me.limit_ as usize);
|
let mut b = buf.take(usize::try_from(*me.limit_).unwrap_or(usize::MAX));
|
||||||
|
|
||||||
let buf_ptr = b.filled().as_ptr();
|
let buf_ptr = b.filled().as_ptr();
|
||||||
ready!(me.inner.poll_read(cx, &mut b))?;
|
ready!(me.inner.poll_read(cx, &mut b))?;
|
||||||
|
|||||||
Reference in New Issue
Block a user