diff options
author | Loic Blot <loic.blot@unix-experience.fr> | 2015-01-26 15:52:02 +0100 |
---|---|---|
committer | Kahrl <kahrl@gmx.net> | 2015-01-27 16:55:25 +0100 |
commit | 80a7408e4d17e0e388f2d45fb90c5524a5dd7c89 (patch) | |
tree | 3bc5f712406c07192c085c0825d90ab0ade8f1af /src/mapblock.cpp | |
parent | eeea454bff0cfcda495c20029a0246f63f14393e (diff) | |
download | minetest-80a7408e4d17e0e388f2d45fb90c5524a5dd7c89.tar.gz minetest-80a7408e4d17e0e388f2d45fb90c5524a5dd7c89.tar.bz2 minetest-80a7408e4d17e0e388f2d45fb90c5524a5dd7c89.zip |
Fix a crash (assert) when client set serial version < 24 in INIT
When SER_FMT_VER_LOWEST is set to zero, then the test is stupid in INIT because all client works. In mapblock we check if client's serialization version is < 24, but if client sent serialization version < 24 (15 for example) the server set it and tried to send nodes, then BOOM
To resolve the problem:
* Create a different CLIENT_MIN_VERSION to handle this problem
* Remove the exception
* Use an assert in case of bad developer code
Diffstat (limited to 'src/mapblock.cpp')
-rw-r--r-- | src/mapblock.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 4cc0abc81..ecd9a016b 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -526,11 +526,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) throw SerializationError("ERROR: Not writing dummy block."); } - // Can't do this anymore; we have 16-bit dynamically allocated node IDs - // in memory; conversion just won't work in this direction. - if(version < 24) - throw SerializationError("MapBlock::serialize: serialization to " - "version < 24 not possible"); + assert(version >= SER_FMT_CLIENT_VER_LOWEST); // First byte u8 flags = 0; |