[Pkg-lxde-maintainers] Bug#598824: BUG FIX - lxpanel pager redraw isse

Richard Hirst richardghirst at gmail.com
Thu Dec 15 19:34:55 UTC 2011


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-lxde-maintainers/attachments/20111215/570a358e/attachment.html>


More information about the Pkg-lxde-maintainers mailing list