fix: Fix rare memleak

Triggered by unit tests. In Profanity itself the situation is probably
rarely happening. We would have to disconnect/exit after receiving
presence but before the roster arrives.
This commit is contained in:
Michael Vetter
2026-03-20 12:43:58 +01:00
parent 4417ec453a
commit 2d7426fb2f

View File

@@ -86,6 +86,7 @@ _pendingPresence_free(ProfPendingPresence* presence)
if (presence->last_activity) if (presence->last_activity)
g_date_time_unref(presence->last_activity); g_date_time_unref(presence->last_activity);
free(presence->barejid); free(presence->barejid);
resource_destroy(presence->resource);
free(presence); free(presence);
} }
@@ -685,6 +686,7 @@ roster_process_pending_presence(void)
for (iter = roster_pending_presence; iter != NULL; iter = iter->next) { for (iter = roster_pending_presence; iter != NULL; iter = iter->next) {
ProfPendingPresence* presence = iter->data; ProfPendingPresence* presence = iter->data;
roster_update_presence(presence->barejid, presence->resource, presence->last_activity); roster_update_presence(presence->barejid, presence->resource, presence->last_activity);
presence->resource = NULL;
} }
g_slist_free_full(roster_pending_presence, (GDestroyNotify)_pendingPresence_free); g_slist_free_full(roster_pending_presence, (GDestroyNotify)_pendingPresence_free);