S3M import: safety checks
This commit is contained in:
parent
40e14d88cc
commit
2aa38d3e6c
|
@ -128,6 +128,13 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) {
|
||||||
unsigned short ordersLen=reader.readS();
|
unsigned short ordersLen=reader.readS();
|
||||||
ds.insLen=reader.readS();
|
ds.insLen=reader.readS();
|
||||||
|
|
||||||
|
if (ordersLen>256) {
|
||||||
|
logE("invalid order count!");
|
||||||
|
lastError="invalid order count!";
|
||||||
|
delete[] file;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
logV("orders: %d",ordersLen);
|
logV("orders: %d",ordersLen);
|
||||||
logV("instruments: %d",ds.insLen);
|
logV("instruments: %d",ds.insLen);
|
||||||
|
|
||||||
|
@ -142,6 +149,13 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) {
|
||||||
|
|
||||||
logV("patterns: %d",patCount);
|
logV("patterns: %d",patCount);
|
||||||
|
|
||||||
|
if (patCount>256) {
|
||||||
|
logE("invalid pattern count!");
|
||||||
|
lastError="invalid pattern count!";
|
||||||
|
delete[] file;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned short flags=reader.readS();
|
unsigned short flags=reader.readS();
|
||||||
unsigned short version=reader.readS();
|
unsigned short version=reader.readS();
|
||||||
bool signedSamples=(reader.readS()==1);
|
bool signedSamples=(reader.readS()==1);
|
||||||
|
|
Loading…
Reference in a new issue