From 82de7e8b8e641a8bd36a9e07fec5f9d57cde465e Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sat, 3 Dec 2022 23:58:20 -0800 Subject: [PATCH] Off by one --- BurnOutSharp.Builder/PortableExecutable.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BurnOutSharp.Builder/PortableExecutable.cs b/BurnOutSharp.Builder/PortableExecutable.cs index 0a539b4d..ed8342ab 100644 --- a/BurnOutSharp.Builder/PortableExecutable.cs +++ b/BurnOutSharp.Builder/PortableExecutable.cs @@ -700,7 +700,7 @@ namespace BurnOutSharp.Builder { var attributeCertificateTable = new List(); - while (offset < endOffset) + while (offset < endOffset && offset != data.Length) { var entry = new AttributeCertificateTableEntry(); @@ -715,7 +715,7 @@ namespace BurnOutSharp.Builder attributeCertificateTable.Add(entry); // Align to the 8-byte boundary - while ((offset % 8) != 0 && offset < endOffset - 1 && offset != data.Length - 1) + while ((offset % 8) != 0 && offset < endOffset - 1 && offset != data.Length) _ = data.ReadByte(ref offset); } @@ -1851,7 +1851,7 @@ namespace BurnOutSharp.Builder { var attributeCertificateTable = new List(); - while (data.Position < endOffset) + while (data.Position < endOffset && data.Position != data.Length) { var entry = new AttributeCertificateTableEntry(); @@ -1866,7 +1866,7 @@ namespace BurnOutSharp.Builder attributeCertificateTable.Add(entry); // Align to the 8-byte boundary - while ((data.Position % 8) != 0 && data.Position < endOffset - 1 && data.Position != data.Length - 1) + while ((data.Position % 8) != 0 && data.Position < endOffset && data.Position != data.Length) _ = data.ReadByteValue(); }