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__ #ifdef __GLIBC__
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/resource.h>
#include <ustat.h> #include <ustat.h>
#include <unistd.h> #include <unistd.h>
#include <dirent.h> #include <dirent.h>
@ -682,6 +683,21 @@ std::string get_nix_version_display_string()
static void setup_crash_dump() {} static void setup_crash_dump() {}
#endif #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() bool on_startup()
{ {
mlog_configure("", true); mlog_configure("", true);

View File

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

View File

@ -51,6 +51,9 @@ bool isAddressLocal(const std::string &address)
void onStartup() void onStartup()
{ {
tools::on_startup(); 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(); std::string lang = i18n_get_language();
tools::on_startup(); tools::on_startup();
#ifdef NDEBUG
tools::disable_core_dumps();
#endif
tools::set_strict_default_file_permissions(true); tools::set_strict_default_file_permissions(true);
epee::string_tools::set_module_name_and_folder(argv[0]); epee::string_tools::set_module_name_and_folder(argv[0]);