Re: Accessing previously freed data.
- From: Dan Williams <dcbw redhat com>
- To: Drew Moseley <dmoseley mvista com>
- Cc: networkmanager-list gnome org
- Subject: Re: Accessing previously freed data.
- Date: Fri, 27 Feb 2009 18:35:00 -0500
On Thu, 2009-02-26 at 17:59 -0700, Drew Moseley wrote:
> Dan Williams wrote:
> > Is HAL being restarted anywhere in here while NM continues to run?
>
>
> Yes it is. That is where I am looking now. In the resync_devices()
> routine it seems like the nm_device_finalize is being triggered before
> the udi_removed callback. I haven't been able to figure out why but
> it looks like the list management may not be correct. Specifically
> the g_slist_remove_link() calls are passing in the iter pointer rather
> than the iter->data pointer but it looks like it is the iter->data
> pointer that has been added to the list. I'm not sure that's relevant
> but that is what I am investigating now.
I looked over the code there again, and it's correct AFAICT.
g_slist_delete_link() in the sync_devices() function should be doing
what its intended to do; it removes one link from the linked list
priv->devices and frees the link. It doesn't free the data of course,
but that should get correctly unref-ed right below. And after that, the
device should no longer be in priv->devices at all. That doesn't mean
there isn't a refcounting bug, but I'm still not quite sure what's
causing the invalid access later on...
Dan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]