mirror of
git://git.suckless.org/dwm
synced 2026-03-02 16:25:50 +00:00
getstate: fix access type and remove redundant cast
WM_STATE is defined to be format == 32 which xlib returns as `long` and so accessing it as `unsigned char` is incorrect. and also &p is already an `unsigned char **` and so the cast was completely redundant. given the redundant cast, i assume `p` was `long *` at some time but was changed to `unsigned char *` later, but the pointer access (and the cast) wasn't updated. also add a `format == 32` check as safety measure before accessing, just in case.
This commit is contained in:
parent
397d618f1c
commit
5c9f30300b
6
dwm.c
6
dwm.c
@ -897,10 +897,10 @@ getstate(Window w)
|
|||||||
Atom real;
|
Atom real;
|
||||||
|
|
||||||
if (XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
|
if (XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
|
||||||
&real, &format, &n, &extra, (unsigned char **)&p) != Success)
|
&real, &format, &n, &extra, &p) != Success)
|
||||||
return -1;
|
return -1;
|
||||||
if (n != 0)
|
if (n != 0 && format == 32)
|
||||||
result = *p;
|
result = *(long *)p;
|
||||||
XFree(p);
|
XFree(p);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user