From: Perttu Ahola Date: Tue, 24 May 2011 17:03:19 +0000 (+0300) Subject: Added a check that avoids server crash (unhandled exception) when map generation... X-Git-Tag: 0.2.20110731_3~177 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ab02f0aa1b852391db89a1384f5c7271271196a5;p=oweals%2Fminetest.git Added a check that avoids server crash (unhandled exception) when map generation is attempted near limit --- diff --git a/src/map.cpp b/src/map.cpp index c681a24b7..a49de3c46 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -3586,7 +3586,18 @@ void ServerMap::initChunkMake(ChunkMakeData &data, v2s16 chunkpos) sectorpos_base - v2s16(1,1) * max_spread_amount_sectors; s16 sectorpos_bigbase_size = sectorpos_base_size + 2 * max_spread_amount_sectors; - + + // Check limits + const s16 limit = MAP_GENERATION_LIMIT / MAP_BLOCKSIZE; + if(sectorpos_bigbase.X < -limit + || sectorpos_bigbase.X + sectorpos_bigbase_size >= limit + || sectorpos_bigbase.Y < -limit + || sectorpos_bigbase.Y + sectorpos_bigbase_size >= limit) + { + data.no_op = true; + return; + } + data.seed = m_seed; data.chunkpos = chunkpos; data.y_blocks_min = y_blocks_min;