From: Ian Jackson Date: Sun, 6 Dec 2015 01:44:38 +0000 (+0000) Subject: Save errno in signal handler X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=innduct.git;a=commitdiff_plain;h=32e76c7d514d05d5ac6ad9833035b9826fbc1c8f Save errno in signal handler --- diff --git a/statemc.c b/statemc.c index 04f0a1d..cb5139d 100644 --- a/statemc.c +++ b/statemc.c @@ -536,6 +536,7 @@ static void *sigarrived_event(oop_source *lp, int fd, oop_event e, void *u) { } static void sigarrived_handler(int signum) { + int esave = errno; static char x; switch (signum) { case SIGTERM: @@ -546,6 +547,7 @@ static void sigarrived_handler(int signum) { abort(); } write(signal_self_pipe[1],&x,1); + errno = esave; } void init_signals(void) {