From 5a647a05e20cb6f91f1aef95b2c83f8ebb03a67c Mon Sep 17 00:00:00 2001 From: Pádraig Brady
Date: Fri, 8 Jul 2011 14:49:05 +0100
Subject: timeout: handle signals more transparently
* m4/jm-macros.m4: Define HAVE_SETRLIMIT.
* src/timeout.c: If the child exited with a signal,
raise that signal to the timeout process itself,
so that callers may also see the signal status.
Use setrlimit to disable core dumps for the timeout
process, which would be generated by some signals.
---
m4/jm-macros.m4 | 2 ++
src/timeout.c | 24 +++++++++++++++++++++++-
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4
index ec553105f..9bb6fa425 100644
--- a/m4/jm-macros.m4
+++ b/m4/jm-macros.m4
@@ -65,6 +65,8 @@ AC_DEFUN([coreutils_MACROS],
# Used by sort.c.
AC_CHECK_FUNCS_ONCE([nl_langinfo])
+ # Used by timeout.c
+ AC_CHECK_FUNCS_ONCE([setrlimit])
# Used by tail.c.
AC_CHECK_FUNCS([inotify_init],
diff --git a/src/timeout.c b/src/timeout.c
index ab54ed675..ef660a717 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -58,6 +58,12 @@
#include "error.h"
#include "quote.h"
+#if HAVE_SETRLIMIT
+/* FreeBSD 5.0 at least needs