From 4811044c149a06ed92ec08bc50e2521e0af8db13 Mon Sep 17 00:00:00 2001 From: WangRunji Date: Sat, 13 Apr 2019 21:03:10 +0800 Subject: [PATCH] fix SgxFile read/write empty buffer --- src/libos/src/fs/sgx_impl.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libos/src/fs/sgx_impl.rs b/src/libos/src/fs/sgx_impl.rs index 748584d1..b60c651b 100644 --- a/src/libos/src/fs/sgx_impl.rs +++ b/src/libos/src/fs/sgx_impl.rs @@ -64,6 +64,9 @@ unsafe impl Sync for LockedFile {} impl File for LockedFile { fn read_at(&self, buf: &mut [u8], offset: usize) -> DevResult { + if buf.len() == 0 { + return Ok(0); + } let mut file = self.0.lock().unwrap(); let offset = offset as u64; file.seek(SeekFrom::Start(offset)) @@ -73,6 +76,9 @@ impl File for LockedFile { } fn write_at(&self, buf: &[u8], offset: usize) -> DevResult { + if buf.len() == 0 { + return Ok(0); + } let mut file = self.0.lock().unwrap(); let offset = offset as u64; file.seek(SeekFrom::Start(offset))