panel crashed, segmentation fault

Jasper Huijsmans jasper at moongroup.com
Thu Mar 13 10:44:43 CET 2003


On Thu, 13 Mar 2003 10:25:04 +0100
Jasper Huijsmans <jasper at moongroup.com> wrote:

> On Wed, 12 Mar 2003 15:23:43 +0100
> Jasper Huijsmans <jasper at moongroup.com> wrote:
> 
> > 
> > hmm, Olivier, the segfault is in mcs_client_destroy(). From gdb:
> > 
> > #4  0x406099b0 in mcs_client_destroy (client=0x809f390) at
> > #mcs-client.c:642
> > 642	mcs_client_delete_channel(client,
> > 		client->channels->channel->channel_name);
> > (gdb) print *client
> > $1 = {display = 0x808ae68, screen = 0, notify = 0x8055170
> > <notify_cb>,
> > 
> >   watch = 0x8055200 <watch_cb>, cb_data = 0x0, mcs_manager_window =
> > 4194306,   manager_atom = 235, selection_atom = 234, channels = 0x0}
> > 
> 
> Ok, more data. I don't get it at all. It seems as if the arguments to
> mcs_channel_lookup get switched (look at the variable adressess). And
> this is reproducible too.
> 
> mcs_client_delete_channel (client=0x809f378, 
> 	channel_name=0x80b8cf0 "XFCE")    
> at mcs-client.c:181 
> 181	g_return_if_fail(channel_name!= NULL);
> 
> (gdb) 
> 182         g_return_if_fail(client != NULL);
> 
> (gdb) 
> 184         channel = mcs_channel_lookup(client, channel_name);
> 
> (gdb) 
> mcs_channel_lookup (client=0x80b8cf0, channel_name=0x809f378 "X®\b\b")
> at mcs-client.c:121
> 121	for (channels = client->channels; channels; 
> 		channels = channels->next)

Ok, this doesn't happen before Benedikt's changes. The channel name does
seem to get corrupted as well, but after the mcs_channel_lookup() call
and the client variable remains correct, so there is no crash.

I have no more time to look into it now. Maybe tonight.

	Jasper



More information about the Xfce4-dev mailing list