summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Peach <jpeach@samba.org>2006-05-16 02:50:49 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:17:03 -0500
commit0ed76af63d25fe98fc0366708675a514a3c5bddb (patch)
treeb9be0ddf6f61f4e4842e1f6d977127d5702458b1
parent62f61caff4cb36070a0987bfccc679ade091f73b (diff)
downloadsamba-0ed76af63d25fe98fc0366708675a514a3c5bddb.tar.gz
samba-0ed76af63d25fe98fc0366708675a514a3c5bddb.tar.bz2
samba-0ed76af63d25fe98fc0366708675a514a3c5bddb.zip
r15631: Add a new option "enable core files". Administrators can use this to
disable automatic core file dumping. Core files are enabled by default. (This used to be commit b59189280057849b67ac65f31cec23b859e21c91)
-rw-r--r--source3/lib/fault.c9
-rw-r--r--source3/param/loadparm.c4
2 files changed, 13 insertions, 0 deletions
diff --git a/source3/lib/fault.c b/source3/lib/fault.c
index 8ae45f2435..dc8c276d02 100644
--- a/source3/lib/fault.c
+++ b/source3/lib/fault.c
@@ -151,6 +151,15 @@ void dump_core_setup(const char *progname)
void dump_core(void)
{
+ /* Note that even if core dumping has been disabled, we still set up
+ * the core path. This is to handle the case where core dumping is
+ * turned on in smb.conf and the relevant daemon is not restarted.
+ */
+ if (!lp_enable_core_files()) {
+ DEBUG(0, ("Exiting on internal error (core file administratively disabled\n"));
+ exit(1);
+ }
+
if (*corepath != '\0') {
/* The chdir might fail if we dump core before we finish
* processing the config file.
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 695e7f1aac..fadd4d0ee3 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -289,6 +289,7 @@ typedef struct {
BOOL bDebugHiresTimestamp;
BOOL bDebugPid;
BOOL bDebugUid;
+ BOOL bEnableCoreFiles;
BOOL bHostMSDfs;
BOOL bUseMmap;
BOOL bHostnameLookups;
@@ -947,6 +948,7 @@ static struct parm_struct parm_table[] = {
{"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, FLAG_ADVANCED},
{"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, FLAG_ADVANCED},
{"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, FLAG_ADVANCED},
+ {"enable core files", P_BOOL, P_GLOBAL, &Globals.bEnableCoreFiles, NULL, NULL, FLAG_ADVANCED},
{N_("Protocol Options"), P_SEP, P_SEPARATOR},
@@ -1504,6 +1506,7 @@ static void init_globals(BOOL first_time_only)
Globals.bDebugHiresTimestamp = False;
Globals.bDebugPid = False;
Globals.bDebugUid = False;
+ Globals.bEnableCoreFiles = True;
Globals.max_ttl = 60 * 60 * 24 * 3; /* 3 days default. */
Globals.max_wins_ttl = 60 * 60 * 24 * 6; /* 6 days default. */
Globals.min_wins_ttl = 60 * 60 * 6; /* 6 hours default. */
@@ -1875,6 +1878,7 @@ FN_GLOBAL_BOOL(lp_timestamp_logs, &Globals.bTimestampLogs)
FN_GLOBAL_BOOL(lp_debug_hires_timestamp, &Globals.bDebugHiresTimestamp)
FN_GLOBAL_BOOL(lp_debug_pid, &Globals.bDebugPid)
FN_GLOBAL_BOOL(lp_debug_uid, &Globals.bDebugUid)
+FN_GLOBAL_BOOL(lp_enable_core_files, &Globals.bEnableCoreFiles)
FN_GLOBAL_BOOL(lp_browse_list, &Globals.bBrowseList)
FN_GLOBAL_BOOL(lp_nis_home_map, &Globals.bNISHomeMap)
static FN_GLOBAL_BOOL(lp_time_server, &Globals.bTimeServer)