Merge pull request #4136

4307489 wallet: disable core dumps on startup in release mode (moneromooo-monero)
This commit is contained in:
luigi1111 2018-08-15 17:15:49 -05:00
commit 1d2c08610b
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
4 changed files with 24 additions and 0 deletions

View file

@ -37,6 +37,7 @@
#ifdef __GLIBC__
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/resource.h>
#include <ustat.h>
#include <unistd.h>
#include <dirent.h>
@ -682,6 +683,21 @@ std::string get_nix_version_display_string()
static void setup_crash_dump() {}
#endif
bool disable_core_dumps()
{
#ifdef __GLIBC__
// disable core dumps in release mode
struct rlimit rlimit;
rlimit.rlim_cur = rlimit.rlim_max = 0;
if (setrlimit(RLIMIT_CORE, &rlimit))
{
MWARNING("Failed to disable core dumps");
return false;
}
#endif
return true;
}
bool on_startup()
{
mlog_configure("", true);

View file

@ -149,6 +149,8 @@ namespace tools
bool sanitize_locale();
bool disable_core_dumps();
bool on_startup();
/*! \brief Defines a signal handler for win32 and *nix

View file

@ -51,6 +51,9 @@ bool isAddressLocal(const std::string &address)
void onStartup()
{
tools::on_startup();
#ifdef NDEBUG
tools::disable_core_dumps();
#endif
}
}

View file

@ -109,6 +109,9 @@ namespace wallet_args
std::string lang = i18n_get_language();
tools::on_startup();
#ifdef NDEBUG
tools::disable_core_dumps();
#endif
tools::set_strict_default_file_permissions(true);
epee::string_tools::set_module_name_and_folder(argv[0]);