From d769264e252e3703f3ad2ab6cea03542084d237a Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 13 Jul 2024 17:01:35 -0500 Subject: [PATCH] fix possible hang when loading invalid MA/Ox feat in instrument issue #2021 --- src/engine/instrument.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index d6407ec6c..ad5ebe8e1 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -1490,6 +1490,12 @@ void DivInstrument::readFeatureMA(SafeReader& reader, short version) { unsigned short macroHeaderLen=reader.readS(); + if (macroHeaderLen==0) { + logW("invalid macro header length!"); + READ_FEAT_END; + return; + } + DivInstrumentMacro* target=&std.volMacro; while (reader.tell()