diff options
author | Tycho <work.tycho+git@gmail.com> | 2014-05-10 14:05:44 +0200 |
---|---|---|
committer | Tycho <work.tycho+git@gmail.com> | 2014-05-10 14:05:44 +0200 |
commit | d478e3cfb19c0347ba0b5513d3250af9d69443de (patch) | |
tree | aaba81bda1ee2e53e5e4d9fdad0c2998ba8edb0f /src/WorldStorage/SchematicFileSerializer.cpp | |
parent | Maybe coverage working? (diff) | |
parent | Merge pull request #992 from mc-server/coverity_fixes (diff) | |
download | cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar.gz cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar.bz2 cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar.lz cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar.xz cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.tar.zst cuberite-d478e3cfb19c0347ba0b5513d3250af9d69443de.zip |
Diffstat (limited to 'src/WorldStorage/SchematicFileSerializer.cpp')
-rw-r--r-- | src/WorldStorage/SchematicFileSerializer.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/WorldStorage/SchematicFileSerializer.cpp b/src/WorldStorage/SchematicFileSerializer.cpp index 9d594a084..1cf99efd9 100644 --- a/src/WorldStorage/SchematicFileSerializer.cpp +++ b/src/WorldStorage/SchematicFileSerializer.cpp @@ -192,7 +192,7 @@ bool cSchematicFileSerializer::LoadFromSchematicNBT(cBlockArea & a_BlockArea, cP int SizeX = a_NBT.GetShort(TSizeX); int SizeY = a_NBT.GetShort(TSizeY); int SizeZ = a_NBT.GetShort(TSizeZ); - if ((SizeX < 1) || (SizeY < 1) || (SizeZ < 1)) + if ((SizeX < 1) || (SizeX > 65535) || (SizeY < 1) || (SizeY > 256) || (SizeZ < 1) || (SizeZ > 65535)) { LOG("Dimensions are invalid in the schematic file: %d, %d, %d", SizeX, SizeY, SizeZ); return false; @@ -230,11 +230,11 @@ bool cSchematicFileSerializer::LoadFromSchematicNBT(cBlockArea & a_BlockArea, cP } // Copy the block types and metas: - int NumBytes = a_BlockArea.GetBlockCount(); + size_t NumBytes = a_BlockArea.GetBlockCount(); if (a_NBT.GetDataLength(TBlockTypes) < NumBytes) { LOG("BlockTypes truncated in the schematic file (exp %d, got %d bytes). Loading partial.", - NumBytes, a_NBT.GetDataLength(TBlockTypes) + (int)NumBytes, (int)a_NBT.GetDataLength(TBlockTypes) ); NumBytes = a_NBT.GetDataLength(TBlockTypes); } @@ -242,11 +242,11 @@ bool cSchematicFileSerializer::LoadFromSchematicNBT(cBlockArea & a_BlockArea, cP if (AreMetasPresent) { - int NumBytes = a_BlockArea.GetBlockCount(); + size_t NumBytes = a_BlockArea.GetBlockCount(); if (a_NBT.GetDataLength(TBlockMetas) < NumBytes) { LOG("BlockMetas truncated in the schematic file (exp %d, got %d bytes). Loading partial.", - NumBytes, a_NBT.GetDataLength(TBlockMetas) + (int)NumBytes, (int)a_NBT.GetDataLength(TBlockMetas) ); NumBytes = a_NBT.GetDataLength(TBlockMetas); } |