diff --git a/src/unix.rs b/src/unix.rs index 4838e7e4..d69af2c3 100644 --- a/src/unix.rs +++ b/src/unix.rs @@ -44,6 +44,13 @@ impl MmapInner { "memory map must have a non-zero length", )); } + let max_offset = libc::off_t::max_value(); + if offset > max_offset as u64 { + return Err(io::Error::new( + io::ErrorKind::InvalidInput, + "offset overflows libc::off_t", + )); + } unsafe { let ptr = libc::mmap(