summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
Diffstat (limited to 'Src')
-rw-r--r--Src/exec.c6
-rw-r--r--Src/utils.c27
2 files changed, 2 insertions, 31 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 6f16b9e87..9695011e3 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -229,7 +229,6 @@ zfork(struct timeval *tv)
{
pid_t pid;
struct timezone dummy_tz;
- sigset_t signals;
/*
* Is anybody willing to explain this test?
@@ -240,10 +239,9 @@ zfork(struct timeval *tv)
}
if (tv)
gettimeofday(tv, &dummy_tz);
- sigfillset(&signals);
- signals = signal_block(signals);
+ queue_signals();
pid = fork();
- signal_setmask(signals);
+ unqueue_signals();
if (pid == -1) {
zerr("fork failed: %e", errno);
return -1;
diff --git a/Src/utils.c b/Src/utils.c
index 7c22a277f..d776d7cb3 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -310,34 +310,7 @@ zerrmsg(FILE *file, const char *fmt, va_list ap)
errflag = 1;
return;
}
-#ifdef HAVE_STRERROR_R
- /*
- * There are two incompatible strerror_r()s floating round.
- * The GNU extension refuses to copy the message into the
- * buffer if it can return a constant string. To suppress it
- * we need to define _XOPEN_SOURCE to 600. I don't dare do
- * this because we're already depending on _GNU_SOURCE. So
- * try to handle both by looking for errno being set (for the
- * standard version failing) or errbuf being left untouched
- * (for the GNU version). One presumes that if strerror_r()
- * didn't copy anything to errbuf, then it's safe to
- * call strerror() to get the string.
- *
- * This is a mess, but it's about a decade and half
- * too late to shirk from messes in the source.
- */
- olderrno = errno;
- errno = 0;
- errbuf[0] = '\0';
- strerror_r(num, errbuf, ERRBUFSIZE);
- if (errno || errbuf[0] == '\0')
- errmsg = strerror(num);
- else
- errmsg = errbuf;
- errno = olderrno;
-#else
errmsg = strerror(num);
-#endif
/* If the message is not about I/O problems, it looks better *
* if we uncapitalize the first letter of the message */
if (num == EIO)