diff --git a/src/platform/redox/epoll.rs b/src/platform/redox/epoll.rs
index 587aaca73a680d11a4d458750c1275cf999f0abb..fdce452dec90bc9d59474b8eb9dd0f99880e3869 100644
--- a/src/platform/redox/epoll.rs
+++ b/src/platform/redox/epoll.rs
@@ -97,7 +97,10 @@ impl PalEpoll for Sys {
         };
 
         let bytes_read = Sys::read(epfd, unsafe {
-            slice::from_raw_parts_mut(events as *mut u8, maxevents as usize)
+            slice::from_raw_parts_mut(
+                events as *mut u8,
+                maxevents as usize * mem::size_of::<syscall::Event>(),
+            )
         });
         if bytes_read == -1 {
             return -1;