| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 11 days | Merge branch 'master' into flyfly | Xiao Pan | |
| 12 days | dwm: Fix getatomprop regression from heap overflow fixHEADmaster | Chris Down | |
| Commit 244fa852fe27 ("dwm: Fix heap buffer overflow in getatomprop") introduced a check for dl > 0 before dereferencing the property pointer. However, I missed that the variable dl is passed to XGetWindowProperty for both nitems_return and bytes_after_return parameters: XGetWindowProperty(..., &dl, &dl, &p) The final value in dl is bytes_after_return, not nitems_return. For a successfully read property, bytes_after is typically 0 (indicating all data was retrieved), so the check `dl > 0` is always false and dwm never reads any atom properties. So this is safe, but not very helpful :-) dl is probably just a dummy variable anyway, so fix by using a separate variable for nitems, and check nitems > 0 as originally intended. | |||
| 2026-01-10 | Merge branch 'master' into fly | Xiao Pan | |
| 2026-01-10 | bump version to 6.7 | Hiltjo Posthuma | |
| Put the maintainer at the top and bump years (time flies). | |||
| 2026-01-10 | dwm: Fix heap buffer overflow in getatomprop | Chris Down | |
| When getatomprop() is called, it invokes XGetWindowProperty() to retrieve an Atom. If the property exists but has zero elements (length 0), Xlib returns Success and sets p to a valid, non-NULL memory address containing a single null byte. However, dl (that is, the number of items) is 0. dwm blindly casts p to Atom* and dereferences it. While Xlib guarantees that p is safe to read as a string (that is, it is null-terminated), it does _not_ guarantee it is safe to read as an Atom (an unsigned long). The Atom type is a typedef for unsigned long. Reading an Atom (which thus will either likely be 4 or 8 bytes) from a 1-byte allocated buffer results in a heap buffer overflow. Since property content is user controlled, this allows any client to trigger an out of bounds read simply by setting a property with format 32 and length 0. An example client which reliably crashes dwm under ASAN: #include <X11/Xlib.h> #include <X11/Xatom.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(void) { Display *d; Window root, w; Atom net_wm_state; d = XOpenDisplay(NULL); if (!d) return 1; root = DefaultRootWindow(d); w = XCreateSimpleWindow(d, root, 10, 10, 200, 200, 1, 0, 0); net_wm_state = XInternAtom(d, "_NET_WM_STATE", False); if (net_wm_state == None) return 1; XChangeProperty(d, w, net_wm_state, XA_ATOM, 32, PropModeReplace, NULL, 0); XMapWindow(d, w); XSync(d, False); sleep(1); XCloseDisplay(d); return 0; } In order to avoid this, check that the number of items returned is greater than zero before dereferencing the pointer. | |||
| 2025-09-30 | Merge branch 'master' into fly | Xiao Pan | |
| 2025-09-29 | drw.c: drw_scm_free: call free inside | Hiltjo Posthuma | |
| Because drw_scm_create() allocates it. | |||
| 2025-09-28 | Merge branch 'master' into fly | Xiao Pan | |
| 2025-09-27 | cleanup schemes and colors | Hiltjo Posthuma | |
| 2025-08-13 | Merge branch 'master' into fly | Xiao Pan | |
| 2025-08-12 | config: make refreshrate for mouse move/resize a config option | Hiltjo Posthuma | |
| Bump the default from 60 to 120. | |||
| 2025-08-09 | bump version to 6.6 | Hiltjo Posthuma | |
| 2025-01-11 | wireguard switch to use cfg repo branches as names | Xiao Pan | |
| 2024-12-29 | consider new ib server | Xiao Pan | |
| 2024-10-30 | Merge branch 'master' into fly | Xiao Pan | |
| 2024-10-30 | Avoid unsigned integer underflow in drw_text() | Raymond Cole | |
| 2024-10-28 | Merge branch 'master' into fly | Xiao Pan | |
| 2024-10-27 | util.c: output function might override errno and thus affect perror() | Hiltjo Posthuma | |
| Original patch by Raymond Cole with some modifications, thanks! | |||
| 2024-10-05 | Merge branch 'master' into fly | Xiao Pan | |
| 2024-10-05 | sync drw.{c,h} from dmenu | Hiltjo Posthuma | |
| - drw: minor improvement to the nomatches cache - overhaul utf8decoding and render invalid utf8 sequences as U+FFFD. Thanks NRK for these improvements! | |||
| 2024-09-04 | pme hotkey change to fit my habit | Xiao Pan | |
| 2024-08-22 | tsp mpvy use -u url so tsp can show urls for each tasks | Xiao Pan | |
| 2024-08-22 | no more -u needed for mpvy; mpvy -c use tsp | Xiao Pan | |
| 2024-08-22 | mpvy yt-dlp use cookie hotkey | Xiao Pan | |
| 2024-08-14 | my passmenu now can output username | Xiao Pan | |
| 2024-08-14 | use my own passmenu script pme | Xiao Pan | |
| 2024-08-14 | I would like dmenu prompt same as actual cli, actual vpn cli no need wg_ prefix | Xiao Pan | |
| 2024-08-14 | one hotkey using dmenu prompt to choose vpn | Xiao Pan | |
| 2024-08-13 | new ca wg vpn | Xiao Pan | |
| 2024-07-22 | reco fullscreen hotkey | Xiao Pan | |
| 2024-06-30 | Revert "fix: press modifiers when xdotool --clearmodifiers will cause key ↵ | Xiao Pan | |
| not pressed but show pressed, try sleep 0.1 to see if fixed" This reverts commit 72444bf2002d71bceb0ffe183685cd08d2d765ab. | |||
| 2024-06-30 | fix: press modifiers when xdotool --clearmodifiers will cause key not ↵ | Xiao Pan | |
| pressed but show pressed, try sleep 0.1 to see if fixed | |||
| 2024-06-26 | feat: add aa vpn hotkey | Xiao Pan | |
| 2024-06-25 | feat: hotkey to auto type sjsu password | Xiao Pan | |
| 2024-06-22 | add hotkey toggle firefox userjs webgl | Xiao Pan | |
| 2024-06-08 | Merge branch 'master' into fly | Xiao Pan | |
| 2024-06-08 | Add missing void to updateclientlist definition | Pontus Stenetorp | |
| Caught by -pedantic implying -Wstrict-prototypes for OpenBSD's 16.0.6 Clang. | |||
| 2024-04-22 | new pass hotkey | Xiao Pan | |
| 2024-04-21 | ia wg vpn seems used more than studio, so change ia to an easier hotkey | Xiao Pan | |
| 2024-04-21 | remove ka vps | Xiao Pan | |
| 2024-04-06 | pass otp no need tail because the other lines are stderr instead of stdout; ↵ | Xiao Pan | |
| also use carriage return for auto enter | |||
| 2024-04-06 | fix: use carriage return so gpg agent can correctly identify it | Xiao Pan | |
| 2024-04-01 | better comment | Xiao Pan | |
| 2024-04-01 | use xdotool for pass otp, more automated | Xiao Pan | |
| 2024-04-01 | mod-a for xdotool type master passwords, temporary solution before I ↵ | Xiao Pan | |
| automate upd | |||
| 2024-03-19 | bump version to 6.5 | Hiltjo Posthuma | |
| 2024-03-11 | use new vpn script to simplify dwm config | Xiao Pan | |
| 2024-03-11 | advanced wireguard | Xiao Pan | |
| 2024-03-05 | feat: add ia wg | Xiao Pan | |
| 2024-01-26 | Try to make search more seamless by adding hotkey, to overcome fear/laziness ↵ | Xiao Pan | |
| to search | |||
