--- a/libpurple/protocols/bonjour/mdns_common.c Sun Nov 03 20:33:05 2019 +0300 +++ b/libpurple/protocols/bonjour/mdns_common.c Sun Nov 03 20:37:07 2019 +0300 @@ -137,24 +137,13 @@ return ret; } -static void free_presence_txt_records(GSList *lst) { - PurpleKeyValuePair *kvp; - while(lst) { - kvp = lst->data; - g_free(kvp->key); - g_free(kvp->value); - g_free(kvp); - lst = g_slist_delete_link(lst, lst); - } -} - static gboolean publish_presence(BonjourDnsSd *data, PublishType type) { GSList *txt_records; gboolean ret; txt_records = generate_presence_txt_records(data); ret = _mdns_publish(data, type, txt_records); - free_presence_txt_records(txt_records); + g_slist_free_full(txt_records, (GDestroyNotify)purple_key_value_pair_free); return ret; }