From eefc52d1dd2c8f0da324689657ac3e92b9564098 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 3 Jan 2023 00:14:42 -0800 Subject: [PATCH] Be safer with uneven lengths --- BurnOutSharp.Compression/Quantum/Decompressor.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BurnOutSharp.Compression/Quantum/Decompressor.cs b/BurnOutSharp.Compression/Quantum/Decompressor.cs index 5fbec73f..1accf436 100644 --- a/BurnOutSharp.Compression/Quantum/Decompressor.cs +++ b/BurnOutSharp.Compression/Quantum/Decompressor.cs @@ -356,7 +356,10 @@ namespace BurnOutSharp.Compression.Quantum if (bitsleft > 16) return; - bitbuf |= (uint)(((inbuf[inpos + 0] << 8) | inbuf[inpos + 1]) << (16 - bitsleft)); + byte b0 = inpos + 0 < inbuf.Length ? inbuf[inpos + 0] : (byte)0; + byte b1 = inpos + 1 < inbuf.Length ? inbuf[inpos + 1] : (byte)0; + + bitbuf |= (uint)(((b0 << 8) | b1) << (16 - bitsleft)); bitsleft += 16; inpos += 2; }