do not call signal-unsafe function inside sighanlder 6613d9f9
die() calls vprintf, fputc and exit; none of these are
async-signal-safe, see `man 7 signal-safety`.
NRK · 2022-07-14 07:26 1 file(s) · +2 −2
dwm.c +2 −2
1541 1541
	Atom utf8string;
1542 1542
1543 1543
	/* clean up any zombies immediately */
1544 +
	if (signal(SIGCHLD, sigchld) == SIG_ERR)
1545 +
		die("can't install SIGCHLD handler:");
1544 1546
	sigchld(0);
1545 1547
1546 1548
	/* init screen */
1638 1640
void
1639 1641
sigchld(int unused)
1640 1642
{
1641 -
	if (signal(SIGCHLD, sigchld) == SIG_ERR)
1642 -
		die("can't install SIGCHLD handler:");
1643 1643
	while (0 < waitpid(-1, NULL, WNOHANG));
1644 1644
}
1645 1645