diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index 812159e7..639712e5 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -1840,6 +1840,9 @@ bool DivEngine::addWaveFromFile(const char* path, bool addRaw) { // read as .dmw reader.seek(0,SEEK_SET); int len=reader.readI(); + if (len<=0 || len>256) { + throw EndOfFileException(&reader,reader.size()); + } wave->max=(unsigned char)reader.readC(); if (wave->max==255) { // new wavetable format unsigned char waveVersion=reader.readC();