mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 08:35:20 +02:00
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
This commit is contained in:
@@ -71,6 +71,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#define SER_FMT_VER_HIGHEST_WRITE 25
|
||||
// Lowest supported serialization version
|
||||
#define SER_FMT_VER_LOWEST 0
|
||||
// Lowest client supported serialization version
|
||||
// Can't do < 24 anymore; we have 16-bit dynamically allocated node IDs
|
||||
// in memory; conversion just won't work in this direction.
|
||||
#define SER_FMT_CLIENT_VER_LOWEST 24
|
||||
|
||||
inline bool ser_ver_supported(s32 v) {
|
||||
return v >= SER_FMT_VER_LOWEST && v <= SER_FMT_VER_HIGHEST_READ;
|
||||
|
Reference in New Issue
Block a user