diff options
author | rubidium <rubidium@openttd.org> | 2013-11-23 18:07:11 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2013-11-23 18:07:11 +0000 |
commit | d18852170b99e6cd20a23ef7305cecd7b741a808 (patch) | |
tree | 03ab98cdda0ef929cc7b54e34314af848642a6b9 | |
parent | c29f18f357fc4a5ce1c7315e744cbe601dac38c4 (diff) | |
download | openttd-d18852170b99e6cd20a23ef7305cecd7b741a808.tar.xz |
(svn r26066) -Fix: possible NULL dereference when resolving industry scope
-rw-r--r-- | src/newgrf_industries.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 6716d2c03..e0953434e 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -447,13 +447,15 @@ TownScopeResolver *IndustriesResolverObject::GetTown() { if (this->town_scope == NULL) { Town *t = NULL; + bool readonly = true; if (this->industries_scope.industry != NULL) { t = this->industries_scope.industry->town; + readonly = this->industries_scope.industry->index == INVALID_INDUSTRY; } else if (this->industries_scope.tile != INVALID_TILE) { t = ClosestTownFromTile(this->industries_scope.tile, UINT_MAX); } if (t == NULL) return NULL; - this->town_scope = new TownScopeResolver(this, t, this->industries_scope.industry->index == INVALID_INDUSTRY); + this->town_scope = new TownScopeResolver(this, t, readonly); } return this->town_scope; } |