summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/fault.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source3/lib/fault.c b/source3/lib/fault.c
index b214d9027e..26b48a80cd 100644
--- a/source3/lib/fault.c
+++ b/source3/lib/fault.c
@@ -161,6 +161,13 @@ void dump_core_setup(const char *progname)
}
#if DUMP_CORE
+ /* If we're running as non root we might not be able to dump the core
+ * file to the corepath. There must not be an unbecome_root() before
+ * we call abort(). */
+ if (getuid() != 0) {
+ become_root();
+ }
+
if (*corepath != '\0') {
/* The chdir might fail if we dump core before we finish
* processing the config file.