getstate: fix access type and remove redundant cast - dwm - my customized version of dwm (hiltjo branch)
HTML git clone git://git.codemadness.org/dwm
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 5c9f30300bec2f7eec9ba61d0c11df999e17f860
DIR parent 397d618f1cfbed398ef05d0c9d1e5dbcdb8144e7
HTML Author: NRK <nrk@disroot.org>
Date: Sun, 15 Feb 2026 22:59:13 +0000
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.
Diffstat:
M dwm.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---
DIR diff --git a/dwm.c b/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;
}