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()