Summary: |
Unref current Sugar activity while unrefing all activities previously announced by a contact |
Product: |
Telepathy
|
Reporter: |
Aleksey Lim <alsroot> |
Component: |
gabble | Assignee: |
Telepathy bugs list <telepathy-bugs> |
Status: |
RESOLVED
MOVED
|
QA Contact: |
Telepathy bugs list <telepathy-bugs> |
Severity: |
normal
|
|
|
Priority: |
medium
|
|
|
Version: |
0.13 | |
|
Hardware: |
Other | |
|
OS: |
All | |
|
Whiteboard: |
|
i915 platform:
|
|
i915 features:
|
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
telepathy-gabble-0.13.6 (at least), doesn't unref current Sugar activity while unrefing all activities previously announced by a contact in extract_activities() function. The issue can be reproduced the by the following top-level Sugar usecase: (1) client A shares new Sugar activity; (2) client B joins it; (3) client A reflects on appearing B and sets B's current activity to the newly shared one; (4) client A leaves the channel; (5) client B leaves the channel; (6) on client A side, the refcount incremented by (3) is not reverted. The affected code: > --- a/src/conn-olpc.c > +++ b/src/conn-olpc.c > @@ -730,6 +730,7 @@ extract_activities (GabbleConnection *conn, > > if (old_activities != NULL) > { > + g_hash_table_remove (conn->olpc_current_act, GUINT_TO_POINTER (sender)); > /* We decrement the refcount (and free if needed) all the > * activities previously announced by this contact. */ > tp_handle_set_foreach (old_activities,