mirror of
git://git.suckless.org/dwm
synced 2026-03-02 13:55:51 +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;
|
||||
|
||||
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;
|
||||
if (n != 0)
|
||||
result = *p;
|
||||
if (n != 0 && format == 32)
|
||||
result = *(long *)p;
|
||||
XFree(p);
|
||||
return result;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user