diff --git a/src/modules/invite.c b/src/modules/invite.c index 97d696288..8ea5af7dc 100644 --- a/src/modules/invite.c +++ b/src/modules/invite.c @@ -97,10 +97,16 @@ MOD_UNLOAD() void invite_free(ModData *md) { - Link *invites = md->ptr; - if(!invites) + Link **inv, *tmp; + + if(!md->ptr) return; // was not set - free_link(invites); + + for (inv = (Link **)md->ptr; (tmp = *inv); inv = &tmp->next) + { + *inv = tmp->next; + free_link(tmp); + } } static int invite_channel_destroy(Channel *channel, int *should_destroy)