mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Misc: Fix dynamic analysis issues
Fix some dynamic analysis issues reported by Valgrind
This commit is contained in:
@@ -273,7 +273,7 @@ uint32 ReadBuild(int locale)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
std::string text = buff;
|
||||
std::string text = std::string(buff, readBytes);
|
||||
CascCloseFile(dbcFile);
|
||||
|
||||
size_t pos = text.find("version=\"");
|
||||
@@ -358,6 +358,7 @@ void ReadAreaTableDBC()
|
||||
size_t area_count = dbc.getRecordCount();
|
||||
maxAreaId = dbc.getMaxId();
|
||||
areas = new uint16[maxAreaId + 1];
|
||||
memset(areas, 0xFF, sizeof(uint16) * (maxAreaId + 1));
|
||||
|
||||
for (uint32 x = 0; x < area_count; ++x)
|
||||
areas[dbc.getRecord(x).getUInt(0)] = dbc.getRecord(x).getUInt(3);
|
||||
|
||||
@@ -111,7 +111,8 @@ bool IsInterestingChunk(u_map_fcc const& fcc)
|
||||
void ChunkedFile::parseChunks()
|
||||
{
|
||||
uint8* ptr = GetData();
|
||||
while (ptr < GetData() + GetDataSize())
|
||||
// Make sure there's enough data to read u_map_fcc struct and the uint32 size after it
|
||||
while (ptr <= GetData() + GetDataSize() - 8)
|
||||
{
|
||||
u_map_fcc header = *(u_map_fcc*)ptr;
|
||||
if (IsInterestingChunk(header))
|
||||
|
||||
Reference in New Issue
Block a user