merge/upstream-full #105
@@ -86,6 +86,7 @@ _pendingPresence_free(ProfPendingPresence* presence)
|
||||
if (presence->last_activity)
|
||||
g_date_time_unref(presence->last_activity);
|
||||
free(presence->barejid);
|
||||
resource_destroy(presence->resource);
|
||||
free(presence);
|
||||
|
jabber.developer marked this conversation as resolved
|
||||
}
|
||||
|
||||
@@ -685,6 +686,7 @@ roster_process_pending_presence(void)
|
||||
for (iter = roster_pending_presence; iter != NULL; iter = iter->next) {
|
||||
ProfPendingPresence* presence = iter->data;
|
||||
roster_update_presence(presence->barejid, presence->resource, presence->last_activity);
|
||||
presence->resource = NULL;
|
||||
}
|
||||
|
||||
g_slist_free_full(roster_pending_presence, (GDestroyNotify)_pendingPresence_free);
|
||||
|
||||
Reference in New Issue
Block a user
We also clean it on line 138. Potential for double free. We need to set it to
NULLinresource.cfor safety. At least the resource itself.Fixed in
60da899bd— caller now nulls its pointer afterresource_destroy.I am not sure where to reply, but in the
roster_update_presence,resourceis a param. setting it tonullbefore returning does not increase safety. it will just override a local variable.Corrected