[Pidgin] #9120: Crash when changing buddy icon with mystatusbox enabled

Pidgin trac at pidgin.im
Wed May 6 00:00:47 EDT 2009


#9120: Crash when changing buddy icon with mystatusbox enabled
------------------------+---------------------------------------------------
 Reporter:  darkrain42  |        Owner:  darkrain42
     Type:  defect      |       Status:  new       
Milestone:              |    Component:  libpurple 
  Version:  2.5.5       |   Resolution:            
 Keywords:  statusbox   |  
------------------------+---------------------------------------------------

Old description:

> The imgstore/buddy icons code doesn't handle references to the
> `PurpleStoredImage` properly in `purple_buddy_icons_set_account_icon()`,
> which leads to a crash when trying to change avatars with mystatusbox
> enabled (an image is freed and then used).
>
> Reported to Ubuntu LP at
> https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/371898
>
> I'm not 100% sure, but it looks like the `pointer_icon_cache` hash table
> in buddyicon.c is supposed to own a reference to all the images stored
> there (based on the comments about !StoredImage references in the
> header), but not all the code paths are doing that properly
> (purple_buddy_icons_find_account_icon,
> purple_buddy_icons_node_find_custom_icon,
> purple_buddy_icons_node_find_custom_icon don't when loading from disk).
>
> Also, it seems like pointer_icon_cache should have the destroy func set
> to purple_imgstore_unref (again not sure, just gut).
>
> Attaching the work-in-progress (this fixes the crash, but I think I'm
> still leaking !StoredImage references and the above issues haven't been
> dealt with). Patch is against head-ish

New description:

 The imgstore/buddy icons code doesn't handle references to the
 `PurpleStoredImage` properly in `purple_buddy_icons_set_account_icon()`,
 which leads to a crash when trying to change avatars with mystatusbox
 enabled (an image is freed and then used).

 Reported to Ubuntu LP at
 https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/371898

 Attaching the work-in-progress (this fixes the crash, but I think I'm
 still leaking !StoredImage references and the above issues haven't been
 dealt with). Patch is against head-ish

--

Comment(by darkrain42):

 I think I understand this better after some cogitation.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/9120#comment:1>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list