diff --git a/src/char/int_guild.c b/src/char/int_guild.c index a008c1be711..7b86750ef96 100644 --- a/src/char/int_guild.c +++ b/src/char/int_guild.c @@ -89,6 +89,7 @@ static int inter_guild_save_timer(int tid, int64 tick, int id, intptr_t data) // Nothing to save, guild is ready for removal. if (chr->show_save_log) ShowInfo("Guild Unloaded (%d - %s)\n", g->guild_id, g->name); + aFree(g->emblem_data); db_remove(inter_guild->guild_db, key); } } @@ -1207,6 +1208,7 @@ static bool inter_guild_disband(int guild_id) inter->log("guild %s (id=%d) broken\n", g->name, guild_id); //Remove the guild from memory. [Skotlex] + aFree(g->emblem_data); idb_remove(inter_guild->guild_db, guild_id); return true; diff --git a/src/map/guild.c b/src/map/guild.c index 84e79cab927..3bb81384fce 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -691,6 +691,8 @@ static int guild_recv_info(const struct guild *sg, struct fifo_chunk_buf *emblem g->emblem_data = NULL; g->emblem_len = 0; } else { + if (!guild_new) + aFree(before.emblem_data); g->emblem_data = aMalloc(emblem_buf->data_size); memcpy(g->emblem_data, emblem_buf->data, emblem_buf->data_size); }