diff --git a/dissect/evidence/ewf.py b/dissect/evidence/ewf.py index b7cf23e..7017d2e 100644 --- a/dissect/evidence/ewf.py +++ b/dissect/evidence/ewf.py @@ -228,7 +228,11 @@ def _read(self, offset: int, length: int) -> bytes: sector_count = (length + self.sector_size - 1) // self.sector_size segment_idx = bisect_right(self.ewf._segment_offsets, sector_offset) + while sector_count > 0: + if segment_idx > len(self.ewf._segment_offsets): + raise EWFError(f"Missing EWF file for segment index: {segment_idx}") + segment = self.ewf.open_segment(segment_idx) segment_remaining_sectors = segment.sector_count - (sector_offset - segment.sector_offset)