Saveload: Log chunk sizes when load fails due to chunk size mismatch
This commit is contained in:
@@ -728,7 +728,10 @@ int SlIterateArray()
|
|||||||
|
|
||||||
/* After reading in the whole array inside the loop
|
/* After reading in the whole array inside the loop
|
||||||
* we must have read in all the data, so we must be at end of current block. */
|
* we must have read in all the data, so we must be at end of current block. */
|
||||||
if (_next_offs != 0 && _sl.reader->GetSize() != _next_offs) SlErrorCorrupt("Invalid chunk size");
|
if (_next_offs != 0 && _sl.reader->GetSize() != _next_offs) {
|
||||||
|
DEBUG(sl, 1, "Invalid chunk size: " PRINTF_SIZE " != " PRINTF_SIZE, _sl.reader->GetSize(), _next_offs);
|
||||||
|
SlErrorCorrupt("Invalid chunk size");
|
||||||
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
uint length = SlReadArrayLength();
|
uint length = SlReadArrayLength();
|
||||||
@@ -2062,7 +2065,10 @@ static void SlLoadChunk(const ChunkHandler *ch)
|
|||||||
_sl.obj_len = len;
|
_sl.obj_len = len;
|
||||||
endoffs = _sl.reader->GetSize() + len;
|
endoffs = _sl.reader->GetSize() + len;
|
||||||
ch->load_proc();
|
ch->load_proc();
|
||||||
if (_sl.reader->GetSize() != endoffs) SlErrorCorrupt("Invalid chunk size");
|
if (_sl.reader->GetSize() != endoffs) {
|
||||||
|
DEBUG(sl, 1, "Invalid chunk size: " PRINTF_SIZE " != " PRINTF_SIZE ", (" PRINTF_SIZE ")", _sl.reader->GetSize(), endoffs, len);
|
||||||
|
SlErrorCorrupt("Invalid chunk size");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
SlErrorCorrupt("Invalid chunk type");
|
SlErrorCorrupt("Invalid chunk type");
|
||||||
}
|
}
|
||||||
@@ -2145,7 +2151,10 @@ static void SlLoadCheckChunk(const ChunkHandler *ch)
|
|||||||
} else {
|
} else {
|
||||||
SlSkipBytes(len);
|
SlSkipBytes(len);
|
||||||
}
|
}
|
||||||
if (_sl.reader->GetSize() != endoffs) SlErrorCorrupt("Invalid chunk size");
|
if (_sl.reader->GetSize() != endoffs) {
|
||||||
|
DEBUG(sl, 1, "Invalid chunk size: " PRINTF_SIZE " != " PRINTF_SIZE ", (" PRINTF_SIZE ")", _sl.reader->GetSize(), endoffs, len);
|
||||||
|
SlErrorCorrupt("Invalid chunk size");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
SlErrorCorrupt("Invalid chunk type");
|
SlErrorCorrupt("Invalid chunk type");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user