aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBřetislav Štec <valsiterb@gmail.com>2015-08-01 14:07:12 +0200
committerest31 <MTest31@outlook.com>2015-08-01 20:44:18 +0200
commit67997af67fbf7c95e78574f810aa322275b3eb66 (patch)
tree49bb0f5c6be50119ba4048155eb4b06985671b33
parent79e2647556773d46cc0299e73ca23c41a153ff2a (diff)
downloadminetest-67997af67fbf7c95e78574f810aa322275b3eb66.tar.gz
minetest-67997af67fbf7c95e78574f810aa322275b3eb66.tar.bz2
minetest-67997af67fbf7c95e78574f810aa322275b3eb66.zip
src/environment.cpp: Fix NULL pointer dereference
-rw-r--r--src/environment.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/environment.cpp b/src/environment.cpp
index cf0ebacfd..5bed11476 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -1820,27 +1820,29 @@ void ServerEnvironment::deactivateFarObjects(bool force_delete)
bool stays_in_same_block = false;
bool data_changed = true;
- if(obj->m_static_exists){
- if(obj->m_static_block == blockpos_o)
+ if (obj->m_static_exists) {
+ if (obj->m_static_block == blockpos_o)
stays_in_same_block = true;
MapBlock *block = m_map->emergeBlock(obj->m_static_block, false);
- std::map<u16, StaticObject>::iterator n =
+ if (block) {
+ std::map<u16, StaticObject>::iterator n =
block->m_static_objects.m_active.find(id);
- if(n != block->m_static_objects.m_active.end()){
- StaticObject static_old = n->second;
+ if (n != block->m_static_objects.m_active.end()) {
+ StaticObject static_old = n->second;
- float save_movem = obj->getMinimumSavedMovement();
+ float save_movem = obj->getMinimumSavedMovement();
- if(static_old.data == staticdata_new &&
- (static_old.pos - objectpos).getLength() < save_movem)
- data_changed = false;
- } else {
- errorstream<<"ServerEnvironment::deactivateFarObjects(): "
+ if (static_old.data == staticdata_new &&
+ (static_old.pos - objectpos).getLength() < save_movem)
+ data_changed = false;
+ } else {
+ errorstream<<"ServerEnvironment::deactivateFarObjects(): "
<<"id="<<id<<" m_static_exists=true but "
<<"static data doesn't actually exist in "
<<PP(obj->m_static_block)<<std::endl;
+ }
}
}