From 03de93dd5fb895338551ee91f60ce6d4258e9318 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 25 May 2019 05:20:42 -0400 Subject: [PATCH] Save and restore errno in the signal handler. * libguile/scmsigs.c (take_signal): Save and restore errno. --- libguile/scmsigs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 755e657ea..a870f5687 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -129,12 +129,14 @@ static int signal_pipe[2]; static SIGRETTYPE take_signal (int signum) { + int old_errno = errno; char sigbyte = signum; full_write (signal_pipe[1], &sigbyte, 1); #ifndef HAVE_SIGACTION signal (signum, take_signal); #endif + errno = old_errno; } struct signal_pipe_data