From 2ec067f43fd8844adef8590e605c341449e7be00 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 20 Sep 2010 13:49:19 +0930 Subject: [PATCH] Really enable core dumps in Linux commit e1f1ce68e1f685400a8c68bcec14018e3d1fc29d Author: Rusty Russell Date: Mon Sep 20 13:33:30 2010 +0930 source3: dump core on Linux, even after seteuid/etc. The "dumpable" flag is reset on every call to set*uid, so we need to reset it to 1 in the signal handler itself. This code dates back to commit ac01fda2b97b 6 years ago :( Signed-off-by: Rusty Russell Signed-off-by: Jeremy Allison Signed-off-by: Michael Adam --- source3/lib/fault.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source3/lib/fault.c b/source3/lib/fault.c index 6430c8e292..18b6941003 100644 --- a/source3/lib/fault.c +++ b/source3/lib/fault.c @@ -319,14 +319,6 @@ void dump_core_setup(const char *progname) #endif #endif -#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE) - /* On Linux we lose the ability to dump core when we change our user - * ID. We know how to dump core safely, so let's make sure we have our - * dumpable flag set. - */ - prctl(PR_SET_DUMPABLE, 1); -#endif - /* FIXME: if we have a core-plus-pid facility, configurably set * this up here. */ @@ -382,6 +374,14 @@ void dump_core_setup(const char *progname) umask(~(0700)); dbgflush(); +#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE) + /* On Linux we lose the ability to dump core when we change our user + * ID. We know how to dump core safely, so let's make sure we have our + * dumpable flag set. + */ + prctl(PR_SET_DUMPABLE, 1); +#endif + /* Ensure we don't have a signal handler for abort. */ #ifdef SIGABRT CatchSignal(SIGABRT,SIGNAL_CAST SIG_DFL); -- 2.34.1