wallet: disable core dumps on startup in release mode

This commit is contained in:
moneromooo-monero 2018-07-15 13:20:36 +01:00
parent eed4dba880
commit 4307489147
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
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]);