From 0ed76af63d25fe98fc0366708675a514a3c5bddb Mon Sep 17 00:00:00 2001 From: James Peach Date: Tue, 16 May 2006 02:50:49 +0000 Subject: 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) --- source3/lib/fault.c | 9 +++++++++ source3/param/loadparm.c | 4 ++++ 2 files changed, 13 insertions(+) (limited to 'source3') 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) -- cgit