diff --git a/src/kernel/jsonconf.c b/src/kernel/jsonconf.c index c8126715a..9e23c3360 100644 --- a/src/kernel/jsonconf.c +++ b/src/kernel/jsonconf.c @@ -270,6 +270,7 @@ static void json_terrain(cJSON *json, terrain_type *ter) { int size = cJSON_GetArraySize(child); if (size > 0) { int n; + free(ter->herbs); ter->herbs = malloc(sizeof(const item_type *) * (size + 1)); ter->herbs[size] = 0; for (n = 0, entry = child->child; entry; entry = entry->next) { diff --git a/src/kernel/terrain.c b/src/kernel/terrain.c index e72e94bfa..ac4a49fe9 100644 --- a/src/kernel/terrain.c +++ b/src/kernel/terrain.c @@ -63,6 +63,7 @@ void free_terrains(void) terrain_type * t = registered_terrains; registered_terrains = t->next; free(t->_name); + free(t->herbs); if (t->production) { for (n = 0; t->production[n].type; ++n) { free(t->production[n].base);