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);