diff options
author | NRK <nrk@disroot.org> | 2022-07-14 07:26:40 +0600 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2022-07-15 20:53:58 +0200 |
commit | 6613d9f9a1a5630bab30bc2b70bdc793977073ee (patch) | |
tree | 914cd55c1688ed675fab188ac562b17904471da1 | |
parent | 9bffa845faa181fb3afe05f3dc86ad79c80736be (diff) | |
download | dwm-6613d9f9a1a5630bab30bc2b70bdc793977073ee.tar.gz |
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`.
-rw-r--r-- | dwm.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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)); } |