From 619d98749292c53545d5ee3215cf8fae75cbfa88 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Mon, 2 Jun 2025 21:24:38 +0200 Subject: [PATCH] fix possible out of bounds access due to unsanitized nSelectors usage --- src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs index a467942f..cf006dbc 100644 --- a/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs +++ b/src/SharpCompress/Compressors/BZip2/CBZip2InputStream.cs @@ -542,9 +542,14 @@ internal class CBZip2InputStream : Stream { j++; } - selectorMtf[i] = (char)j; + if (i < BZip2Constants.MAX_SELECTORS) + { + selectorMtf[i] = (char)j; + } } + nSelectors = Math.Min(nSelectors, BZip2Constants.MAX_SELECTORS); + /* Undo the MTF values for the selectors. */ { var pos = new char[BZip2Constants.N_GROUPS];