There was an error while loading. Please reload this page.
1 parent e3c67e8 commit e439a20Copy full SHA for e439a20
1 file changed
kernel/src/vfs/pipe.rs
@@ -90,7 +90,7 @@ impl FileOps for PipeBuffer {
90
let mut inner = self.inner.lock();
91
let mut v = vec![0u8; buf.len()];
92
let len = inner.buffer.read(&mut v);
93
- buf.copy_from_slice(&v)?;
+ buf.copy_from_slice(&v[..len])?;
94
95
// If there was at least one byte written to the pipe
96
if len > 0 {
@@ -129,7 +129,8 @@ impl FileOps for PipeBuffer {
129
return Err(Errno::EPIPE);
130
}
131
132
- let mut v = vec![0u8; buf.len()];
+ let to_write = buf.len().min(inner.buffer.get_available_len());
133
+ let mut v = vec![0u8; to_write];
134
buf.copy_to_slice(&mut v)?;
135
inner.buffer.write(&v)
136
};
0 commit comments