From f0710ededc80610fdaff3209f8b94fa0d7bb78ce Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 25 Feb 2022 20:16:42 -0500 Subject: ensure read_buf doesn't overflow the buffer --- src/pty.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pty.rs b/src/pty.rs index 87fb311..a63cc38 100644 --- a/src/pty.rs +++ b/src/pty.rs @@ -76,7 +76,7 @@ impl tokio::io::AsyncRead for Pty { std::task::Poll::Ready(guard) => guard, std::task::Poll::Pending => return std::task::Poll::Pending, }?; - let mut b = [0u8; 4096]; + let mut b = vec![0u8; buf.capacity()]; match guard.try_io(|inner| (&inner.get_ref().0).read(&mut b)) { Ok(Ok(bytes)) => { // XXX this is safe, but not particularly efficient @@ -154,7 +154,7 @@ impl<'a> tokio::io::AsyncRead for ReadPty<'a> { std::task::Poll::Ready(guard) => guard, std::task::Poll::Pending => return std::task::Poll::Pending, }?; - let mut b = [0u8; 4096]; + let mut b = vec![0u8; buf.capacity()]; match guard.try_io(|inner| (&inner.get_ref().0).read(&mut b)) { Ok(Ok(bytes)) => { // XXX this is safe, but not particularly efficient @@ -267,7 +267,7 @@ impl tokio::io::AsyncRead for OwnedReadPty { std::task::Poll::Ready(guard) => guard, std::task::Poll::Pending => return std::task::Poll::Pending, }?; - let mut b = [0u8; 4096]; + let mut b = vec![0u8; buf.capacity()]; match guard.try_io(|inner| (&inner.get_ref().0).read(&mut b)) { Ok(Ok(bytes)) => { // XXX this is safe, but not particularly efficient -- cgit v1.2.3-54-g00ecf