diff --git a/crates/wiggle/src/lib.rs b/crates/wiggle/src/lib.rs index 9c36c274f3..3e4e4c97ea 100644 --- a/crates/wiggle/src/lib.rs +++ b/crates/wiggle/src/lib.rs @@ -449,7 +449,7 @@ impl<'a, T> GuestPtr<'a, [T]> { self.pointer.0 } - /// For slices, returns the length of the slice, in units. + /// For slices, returns the length of the slice, in elements. pub fn len(&self) -> u32 { self.pointer.1 } @@ -552,6 +552,9 @@ impl<'a, T> GuestPtr<'a, [T]> { } pub fn get_range(&self, r: std::ops::Range) -> Option> { + if r.end < r.start { + return None; + } let range_length = r.end - r.start; if r.start <= self.len() && r.end <= self.len() { Some(GuestPtr::new(