savegame3.c: Multiresearch load memory corruption
sg_load_researches() has a multiresearch related block, where it
1) first allocates memory for an int vector, but then immediately overwrites pointer to that memory by result of secfile_lookup_int_vec()
2) later it free() using that pointer. Results of secfile_lookup_...() should never be freed individually (they get freed when entire secfile is destroyed). The originally allocate memory (to which there remains no pointer to) never gets freed.
Also, it does not respect technology.order but assumes that ruleset has been unchanged since the game was saved.