From 9bb34aec209c547e56d90bdcfabf2e10c209f7d1 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Sun, 31 Jan 2021 19:13:31 +0100 Subject: [PATCH] flopimg: Fix wrapping on mac sector extraction --- src/lib/formats/flopimg.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/formats/flopimg.cpp b/src/lib/formats/flopimg.cpp index 0bdec18d201..9322551124b 100644 --- a/src/lib/formats/flopimg.cpp +++ b/src/lib/formats/flopimg.cpp @@ -2986,8 +2986,14 @@ std::vector> floppy_image_format_t::extract_sectors_from_tr auto &sdata = sector_data[se]; uint8_t ca = 0, cb = 0, cc = 0; - uint32_t hstate = (nib[pos] << 8) | nib[pos + 1]; - pos += 2; + uint32_t hstate = (nib[pos] << 8); + pos ++; + if(pos == nib.size()) + pos = 0; + hstate |= nib[pos]; + pos ++; + if(pos == nib.size()) + pos = 0; for(;;) { hstate = ((hstate << 8) | nib[pos]) & 0xffffff; pos ++;