From c9794691bbdd8da1b90fcb9e90f5349a11eab129 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 25 Sep 2025 13:40:29 -0400 Subject: [PATCH] Limit overlay caching to int.MaxValue --- SabreTools.Serialization/Wrappers/NewExecutable.cs | 3 +++ SabreTools.Serialization/Wrappers/PortableExecutable.cs | 3 +++ 2 files changed, 6 insertions(+) diff --git a/SabreTools.Serialization/Wrappers/NewExecutable.cs b/SabreTools.Serialization/Wrappers/NewExecutable.cs index 765e2f10..aeb1e1a4 100644 --- a/SabreTools.Serialization/Wrappers/NewExecutable.cs +++ b/SabreTools.Serialization/Wrappers/NewExecutable.cs @@ -109,6 +109,7 @@ namespace SabreTools.Serialization.Wrappers /// /// Overlay data, if it exists /// + /// Can only cache up to bytes /// public byte[] OverlayData { @@ -154,6 +155,8 @@ namespace SabreTools.Serialization.Wrappers // Otherwise, cache and return the data long overlayLength = dataLength - endOfSectionData; + overlayLength = Math.Min(overlayLength, int.MaxValue); + _overlayData = ReadRangeFromSource((int)endOfSectionData, (int)overlayLength); return _overlayData; } diff --git a/SabreTools.Serialization/Wrappers/PortableExecutable.cs b/SabreTools.Serialization/Wrappers/PortableExecutable.cs index 65ba8c66..f82eee00 100644 --- a/SabreTools.Serialization/Wrappers/PortableExecutable.cs +++ b/SabreTools.Serialization/Wrappers/PortableExecutable.cs @@ -362,6 +362,7 @@ namespace SabreTools.Serialization.Wrappers /// /// Overlay data, if it exists /// + /// Can only cache up to bytes /// public byte[] OverlayData { @@ -407,6 +408,8 @@ namespace SabreTools.Serialization.Wrappers // Otherwise, cache and return the data long overlayLength = dataLength - endOfSectionData; + overlayLength = Math.Min(overlayLength, int.MaxValue); + _overlayData = ReadRangeFromSource(endOfSectionData, (int)overlayLength) ?? []; return _overlayData; }