general check for sf->faction's validity

The handling of an ally without a valid faction-pointer is now skipped
in favor of a logged error.
This commit is contained in:
Philipp Dreher 2015-11-01 18:54:29 +01:00
parent 2f02c27659
commit f18b5ea7d2

View file

@ -1346,11 +1346,16 @@ void writefaction(struct gamedata *data, const faction * f)
WRITE_SECTION(data->store);
for (sf = f->allies; sf; sf = sf->next) {
int no = (sf->faction != NULL) ? sf->faction->no : 0;
int status = alliedfaction(NULL, f, sf->faction, HELP_ALL);
if (status != 0) {
WRITE_INT(data->store, no);
WRITE_INT(data->store, sf->status);
if (sf->faction != NULL) {
int no = sf->faction->no;
int status = alliedfaction(NULL, f, sf->faction, HELP_ALL);
if (status != 0) {
WRITE_INT(data->store, no);
WRITE_INT(data->store, sf->status);
}
}
else {
log_error("NULL-pointer in ally-struct for faction '%s'.", f->no);
}
}
WRITE_INT(data->store, 0);