dwm
dynamic window manager
git clone https://9o.is/git/dwm.git
commit 7aaac398b371885c8a892865e4d5076303e177f1 parent 0d862487725077c188f65b351414379311aadf63 Author: NRK <nrk@disroot.org> Date: Thu, 14 Jul 2022 07:26:40 +0600 do not call signal-unsafe function inside sighanlder die() calls vprintf, fputc and exit; none of these are async-signal-safe, see `man 7 signal-safety`. Diffstat:
| M | dwm.c | | | 4 | ++-- |
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dwm.c b/dwm.c @@ -1541,6 +1541,8 @@ setup(void) Atom utf8string; /* clean up any zombies immediately */ + if (signal(SIGCHLD, sigchld) == SIG_ERR) + die("can't install SIGCHLD handler:"); sigchld(0); /* init screen */ @@ -1638,8 +1640,6 @@ showhide(Client *c) void sigchld(int unused) { - if (signal(SIGCHLD, sigchld) == SIG_ERR) - die("can't install SIGCHLD handler:"); while (0 < waitpid(-1, NULL, WNOHANG)); }