[Pidgin] #8798: Themes freed while still in use

Pidgin trac at pidgin.im
Thu Mar 26 13:47:19 EDT 2009


#8798: Themes freed while still in use
------------------------+---------------------------------------------------
 Reporter:  darkrain42  |           Owner:     
     Type:  defect      |          Status:  new
Component:  libpurple   |         Version:     
 Keywords:              |   Launchpad_bug:     
------------------------+---------------------------------------------------
 The current theme manager frees themes while they're still in use, which
 eventually leads to accessing unallocated memory (I can occasionally get a
 segfault at shutdown).

 Opening the GTK prefs refreshes the list of themes
 ([1e8b6403400015b82def768a98cd269fb8cc2cf2], oh hey, my fautlt!), which
 frees all the current themes (theme-
 manager.c:purple_theme_manager_refresh).

 This frees the current theme, even if it's in use (in my test case, the
 Guifications3 blist theme). When closing the GTK preferences pane (this is
 random, I can't figure out how to consistently reproduce it), the current
 blist theme is occasionally reset back to the default theme.

 I see a few ways to go about fixing this:
   * Subsystem keeps a reference to a theme in use. This would keep the
 theme from being freed and seems like the "right" thing to do anyway...
     * I think some changes still needed to !PurpleThemeManager to keep it
 from ending up with multiple copies of the loaded theme.
   * purple_theme_manager_refresh should re-read the possible themes,
 updating current !PurpleTheme objects without destroying them.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/8798>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list