From 458f96936dfd720466f17861f15ab4d9dc703350 Mon Sep 17 00:00:00 2001 From: tobias Date: Tue, 6 May 2008 15:12:04 +0000 Subject: [PATCH] Signal handler of SIGCHLD calls waitpid() which sets errno on error. To avoid clubbering of errno in normal context, save_errno got introduced. ok oga --- calmwm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/calmwm.c b/calmwm.c index da8aa4b..a9e84d9 100644 --- a/calmwm.c +++ b/calmwm.c @@ -300,12 +300,15 @@ static void _sigchld_cb(int which) { pid_t pid; + int save_errno = errno; int status; /* Collect dead children. */ while ((pid = waitpid(-1, &status, WNOHANG)) > 0 || (pid < 0 && errno == EINTR)) ; + + errno = save_errno; } __dead void