diff --git a/crates/clawhdf5-format/src/chunked_read.rs b/crates/clawhdf5-format/src/chunked_read.rs index 712aab8..ddadda7 100644 --- a/crates/clawhdf5-format/src/chunked_read.rs +++ b/crates/clawhdf5-format/src/chunked_read.rs @@ -155,7 +155,9 @@ impl ChunkPlacer { &mut long }; for (o, &off) in chunk_offsets.iter_mut().zip(offsets) { - *o = off as usize; + // An offset past `usize` is past the dataset: the chunk writes + // nothing (a plain cast would wrap it into the output). + *o = usize::try_from(off).unwrap_or(usize::MAX); } // SAFETY: the caller's contract. unsafe {