From 3bb496f9aefe7d715008f7ec51033482bed32d22 Mon Sep 17 00:00:00 2001 From: Thomas Harte <thomas.harte@gmail.com> Date: Thu, 22 Mar 2018 22:00:26 -0400 Subject: [PATCH] Enforces a maximum sector size to avoid impossible sizes. Such as 128 * 2^255. --- Storage/Disk/Encodings/MFM/SegmentParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Storage/Disk/Encodings/MFM/SegmentParser.cpp b/Storage/Disk/Encodings/MFM/SegmentParser.cpp index 5943fbb0b..8fd0c3810 100644 --- a/Storage/Disk/Encodings/MFM/SegmentParser.cpp +++ b/Storage/Disk/Encodings/MFM/SegmentParser.cpp @@ -56,7 +56,7 @@ std::map<std::size_t, Storage::Encodings::MFM::Sector> Storage::Encodings::MFM:: case 2: new_sector->address.sector = shifter.get_byte(); ++position; break; case 3: new_sector->size = shifter.get_byte(); - size = static_cast<std::size_t>(128 << new_sector->size); + size = static_cast<std::size_t>(128 << (new_sector->size&7)); ++position; is_reading = false; shifter.set_should_obey_syncs(true);