Fixing server crash

Mit rules.region_owner_pay_building  ein kann es vorkommen, das wegen
einem leeren Gebäude die größte Burg in der Region gesucht wird. Wenn es
aber keine Burg in der Region gibt, wird building_owner mit NULL
aufgerufen. Das musste abgefangen werden.
This commit is contained in:
CTD 2014-08-07 11:24:55 +02:00
parent 51356b061c
commit 8b9f344484
1 changed files with 3 additions and 0 deletions

View File

@ -682,6 +682,9 @@ static unit *building_owner_ex(const building * bld, const struct faction * last
unit *building_owner(const building * bld) unit *building_owner(const building * bld)
{ {
if (!bld) {
return NULL;
}
unit *owner = bld->_owner; unit *owner = bld->_owner;
if (!owner || (owner->building!=bld || owner->number<=0)) { if (!owner || (owner->building!=bld || owner->number<=0)) {
unit * heir = building_owner_ex(bld, owner?owner->faction:0); unit * heir = building_owner_ex(bld, owner?owner->faction:0);