Hi,
I'm running lubuntu 11.10 64 bit, with a pager set for 8 desktops. I
find the pager tends not to redraw properly and randomly adds and removes
representation of windows from the pager desktop views. Also the panel to
the right of the volume control doesn't redraw properly after the 'current
volume' popup is displayed and then removed. The first of these problems
(and I think, the second too) is due to a bug in misc.c:
void
get_net_wm_window_type(Window win, NetWMWindowType *nwwt)
{
Atom *state;
int num3;
ENTER;
bzero(nwwt, sizeof(nwwt));
if (!(state = get_xaproperty(win, a_NET_WM_WINDOW_TYPE, XA_ATOM,
&num3)))
RET();
DBG( "%x: netwm state = { ", (unsigned int)win);
...
The bzero() call should use sizeof(*nwwt) rather than sizeof(nwwt).
A NetWMWindowType is 4 bytes but on 64 bit a NetWMWindowType* is 8 bytes
and so the bzero ends up overwriting 4 bytes it should not. In pager.c
that ends up clearing present_in_client_list and
then pager_net_client_list_stacking() ends up freeing PagerTask structs
that are still being referenced.
I checked git, and it seems this bug is still present in current source.
Thanks,
Richard
------------------------------------------------------------------------------
Learn Windows Azure Live! Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for
developers. It will provide a great way to learn Windows Azure and what it
provides. You can attend the event by watching it streamed LIVE online.
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Lxde-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxde-list