FS#3749 - Segmentation Fault

Attached to Project: OpenTTD
Opened by Ammler (Ammler) - Saturday, 10 April 2010, 12:28 GMT
Last edited by Remko Bijker (Rubidium) - Saturday, 17 April 2010, 22:19 GMT
Type Bug
Category Core
Status Closed
Assigned To No-one
Operating System All
Severity High
Priority High
Reported Version 1.0.0
Due in Version 1.0.1
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


We had a segmentation fault this night:

crash files attached.

Server patches in use:
- keepBlitter
- logging DoCommands

further infos from SmatZ ;-)
This task depends upon

Closed by  Remko Bijker (Rubidium)
Saturday, 17 April 2010, 22:19 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r19664.
Comment by Zdeněk Sojka (SmatZ) - Saturday, 10 April 2010, 12:34 GMT
The crash is at company_cmd.cpp:642 in void CompaniesYearlyLoop():

if (_settings_client.gui.show_finances && _local_company != COMPANY_SPECTATOR) {
c = Company::Get(_local_company);
> if (c->num_valid_stat_ent > 5 && c->old_economy[0].performance_history < c->old_economy[4].performance_history) {

as seen in crash.log, _local_company == 0 and there is no company 0 in the savegame. Why is _local_company == 0 anyway for dedicated server?

Workaround in this case is to "set show_finances 0", but with _local_company != COMPANY_SPECTATOR, I wouldn't wonder if it crashed at different place later.