aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author(@U-Exp) <(@U-Exp)>2015-01-24 11:07:04 +0100
committerCraig Robbins <kde.psych@gmail.com>2015-01-24 22:41:02 +1000
commit800d19270250bb13cc6b2d330199815bf8e96446 (patch)
treedf079c9b77a03bbbe60ada3d99b9c1226d8c51d4 /src
parentf8bd1f356361190502e85636d382b8e895ff4d57 (diff)
downloadminetest-800d19270250bb13cc6b2d330199815bf8e96446.tar.gz
minetest-800d19270250bb13cc6b2d330199815bf8e96446.tar.bz2
minetest-800d19270250bb13cc6b2d330199815bf8e96446.zip
Fix a crash (assert) when client set serial version < 24 in INIT command 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
Diffstat (limited to 'src')
-rw-r--r--src/mapblock.cpp6
-rw-r--r--src/serialization.h6
2 files changed, 3 insertions, 9 deletions
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 4cc0abc81..c22096562 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -526,12 +526,6 @@ 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");
-
// First byte
u8 flags = 0;
if(is_underground)
diff --git a/src/serialization.h b/src/serialization.h
index caa1a66da..6bc4cdc53 100644
--- a/src/serialization.h
+++ b/src/serialization.h
@@ -30,11 +30,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
--------------------------------
For map data (blocks, nodes, sectors).
-
+
NOTE: The goal is to increment this so that saved maps will be
loadable by any version. Other compatibility is not
maintained.
-
+
0: original networked test with 1-byte nodes
1: update with 2-byte nodes
2: lighting is transmitted in param
@@ -70,7 +70,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
// Saved on disk version
#define SER_FMT_VER_HIGHEST_WRITE 25
// Lowest supported serialization version
-#define SER_FMT_VER_LOWEST 0
+#define SER_FMT_VER_LOWEST 24
inline bool ser_ver_supported(s32 v) {
return v >= SER_FMT_VER_LOWEST && v <= SER_FMT_VER_HIGHEST_READ;