# HG changeset patch # User jbe # Date 1496576952 -7200 # Node ID 37aaca00941cd944ee4615def4bc41835eab2cc1 # Parent 30a04a6a45db7deeea7f4ba71f34e9450d812f89 Backup and restore errno in signal handler diff -r 30a04a6a45db -r 37aaca00941c moonbridge.c --- a/moonbridge.c Sun Jun 04 13:43:09 2017 +0200 +++ b/moonbridge.c Sun Jun 04 13:49:12 2017 +0200 @@ -295,6 +295,7 @@ /* Signal handler for master and child processes */ static void moonbr_signal(int sig) { + int errno2 = errno; /* backup errno variable */ if (getpid() == moonbr_masterpid) { /* master process */ switch (sig) { @@ -326,6 +327,7 @@ kill(moonbr_masterpid, sig); } } + errno = errno2; /* restore errno from backup */ } /* Initialize signal handling */