--- freeciv/server/ruleset.c.orig Fri Aug 17 13:47:14 2001 +++ freeciv/server/ruleset.c Fri Aug 17 13:50:35 2001 @@ -924,7 +924,10 @@ } } b->terr_gate[k] = T_LAST; - free(list); + if(list) { + free(list); + list = NULL; + } list = secfile_lookup_str_vec(file, &count, "%s.spec_gate", sec[i]); b->spec_gate = fc_malloc((count + 1) * sizeof(b->spec_gate[0])); @@ -940,7 +943,10 @@ } } b->spec_gate[k] = S_NO_SPECIAL; - free(list); + if(list) { + free(list); + list = NULL; + } item = secfile_lookup_str(file, "%s.equiv_range", sec[i]); b->equiv_range = effect_range_from_str(item); @@ -965,7 +971,10 @@ } } b->equiv_dupl[k] = B_LAST; - free(list); + if(list) { + free(list); + list = NULL; + } list = secfile_lookup_str_vec(file, &count, "%s.equiv_repl", sec[i]); b->equiv_repl = fc_malloc((count + 1) * sizeof(b->equiv_repl[0])); @@ -981,7 +990,10 @@ } } b->equiv_repl[k] = B_LAST; - free(list); + if(list) { + free(list); + list = NULL; + } b->obsolete_by = lookup_tech(file, sec[i], "obsolete_by", 0, filename, b->name);