ido not call signal-unsafe function inside sighanlder - dwm - dynamic window manager Err parazyd.org 70 hgit clone https://git.parazyd.org/dwm URL:https://git.parazyd.org/dwm parazyd.org 70 1Log /git/dwm/log.gph parazyd.org 70 1Files /git/dwm/files.gph parazyd.org 70 1Refs /git/dwm/refs.gph parazyd.org 70 1README /git/dwm/file/README.gph parazyd.org 70 1LICENSE /git/dwm/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 6613d9f9a1a5630bab30bc2b70bdc793977073ee /git/dwm/commit/6613d9f9a1a5630bab30bc2b70bdc793977073ee.gph parazyd.org 70 1parent 9bffa845faa181fb3afe05f3dc86ad79c80736be /git/dwm/commit/9bffa845faa181fb3afe05f3dc86ad79c80736be.gph parazyd.org 70 hAuthor: NRK URL:mailto:nrk@disroot.org parazyd.org 70 iDate: Thu, 14 Jul 2022 07:26:40 +0600 Err parazyd.org 70 i Err parazyd.org 70 ido not call signal-unsafe function inside sighanlder Err parazyd.org 70 i Err parazyd.org 70 idie() calls vprintf, fputc and exit; none of these are Err parazyd.org 70 iasync-signal-safe, see `man 7 signal-safety`. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M dwm.c | 4 ++-- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 2 insertions(+), 2 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/dwm.c b/dwm.c /git/dwm/file/dwm.c.gph parazyd.org 70 i@@ -1541,6 +1541,8 @@ setup(void) Err parazyd.org 70 i Atom utf8string; Err parazyd.org 70 i Err parazyd.org 70 i /* clean up any zombies immediately */ Err parazyd.org 70 i+ if (signal(SIGCHLD, sigchld) == SIG_ERR) Err parazyd.org 70 i+ die("can't install SIGCHLD handler:"); Err parazyd.org 70 i sigchld(0); Err parazyd.org 70 i Err parazyd.org 70 i /* init screen */ Err parazyd.org 70 i@@ -1638,8 +1640,6 @@ showhide(Client *c) Err parazyd.org 70 i void Err parazyd.org 70 i sigchld(int unused) Err parazyd.org 70 i { Err parazyd.org 70 i- if (signal(SIGCHLD, sigchld) == SIG_ERR) Err parazyd.org 70 i- die("can't install SIGCHLD handler:"); Err parazyd.org 70 i while (0 < waitpid(-1, NULL, WNOHANG)); Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 .