[Pkg-xfce-devel] Bug#642397: Bug#642397: Bug#642397: xfce4-power-manager: Segfault when docking
Yves-Alexis Perez
corsac at debian.org
Thu Mar 29 08:39:19 UTC 2012
On sam., 2011-10-22 at 22:57 +0200, Jö Fahlke wrote:
> tags 642397 +patch
> thanks
>
> Hi!
>
> The problem, as far as I figured it out, is apparently twofold:
>
> 1. At some point xfpm_battery_notify() is called with some XfpmBattery
> object. If notifications are enabled, it will add a source with idle
> priority which holds a pointer to this object and has
> xfpm_battery_notify_idle() as its callback function.
>
> 2. After xfpm_battery_notify() returns, the XfpmBattery object is entered
> into some hash table.
>
> 3. Later the source invokes xfpm_battery_notify_idle(). The XfpmBattery
> object that is passed as an argument is usually valid. But sometimes it
> has a reference count of 0 and priv == NULL.
>
> What happens is that sometimes XfpmBattery object is removed from the hash and
> freed between 2. and 3. Apparently my hal sends an add and an remove message
> for the same battery immediately after each other.
>
> The attached patch fixes this by calling g_object_ref() on the
> XfpmBatteryObject in xfpm_battery_notify() before g_idle_add() is called to
> add the source. The corresponding unref happens unconditionally in
> xfpm_battery_notify_idle() -- that function returns FALSE, which means the
> source holding the pointer to the XfpmBattery object is removed after it's
> callback returns.
>
> Please, somebody review this patch, I'm really quite new to glib and gobject
> -- I may have easily overlooked something, or violated some convention.
> (Like: is the source's callback always called, or are there cases where the
> source gets removed without beeing called? That would create a memory leak.)
>
> Anyway, I'm going to run the patched xfpm for a while and will report back if
> notice any further problems.
>
> Bye,
> Jö.
>
By the way, does this still happen? 1.0.10-5 (uploaded on feb 2012) has
a patch which might fix your issue.
Regards,
--
Yves-Alexis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-xfce-devel/attachments/20120329/f6610704/attachment-0001.pgp>
More information about the Pkg-xfce-devel
mailing list