aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2018-09-29 22:17:00 +0200
committerRiccardo Spagni <ric@spagni.net>2018-09-29 22:20:38 +0200
commiteffcbf2060a48b01779a713fe66c82714a7fb7f2 (patch)
treede0e14b3ebc117ab2b88d3060d853354459d38cd /contrib
parentMerge pull request #4458 (diff)
downloadmonero-effcbf2060a48b01779a713fe66c82714a7fb7f2.tar.xz
Merge pull request #4459
bcf3f6af fuzz_tests: catch unhandled exceptions (moneromooo-monero) 3ebd05d4 miner: restore stream flags after changing them (moneromooo-monero) a093092e levin_protocol_handler_async: do not propagate exception through dtor (moneromooo-monero) 1eebb82b net_helper: do not propagate exceptions through dtor (moneromooo-monero) fb6a3630 miner: do not propagate exceptions through dtor (moneromooo-monero) 2e2139ff epee: do not propagate exception through dtor (moneromooo-monero) 0749a8bd db_lmdb: do not propagate exceptions in dtor (moneromooo-monero) 1b0afeeb wallet_rpc_server: exit cleanly on unhandled exceptions (moneromooo-monero) 418a9936 unit_tests: catch unhandled exceptions (moneromooo-monero) ea7f9543 threadpool: do not propagate exceptions through the dtor (moneromooo-monero) 6e855422 gen_multisig: nice exit on unhandled exception (moneromooo-monero) 53df2deb db_lmdb: catch error in mdb_stat calls during migration (moneromooo-monero) e67016dd blockchain_blackball: catch failure to commit db transaction (moneromooo-monero) 661439f4 mlog: don't remove old logs if we failed to rename the current file (moneromooo-monero) 5fdcda50 easylogging++: test for NULL before dereference (moneromooo-monero) 7ece1550 performance_test: fix bad last argument calling add_arg (moneromooo-monero) a085da32 unit_tests: add check for page size > 0 before dividing (moneromooo-monero) d8b1ec8b unit_tests: use std::shared_ptr to shut coverity up about leaks (moneromooo-monero) 02563bf4 simplewallet: top level exception catcher to print nicer messages (moneromooo-monero) c57a65b2 blockchain_blackball: fix shift range for 32 bit archs (moneromooo-monero)
Diffstat (limited to '')
-rw-r--r--contrib/epee/include/console_handler.h3
-rw-r--r--contrib/epee/include/net/levin_protocol_handler_async.h6
-rw-r--r--contrib/epee/include/net/net_helper.h3
-rw-r--r--contrib/epee/src/mlog.cpp7
4 files changed, 16 insertions, 3 deletions
diff --git a/contrib/epee/include/console_handler.h b/contrib/epee/include/console_handler.h
index 0e22a971c..2ccf5b095 100644
--- a/contrib/epee/include/console_handler.h
+++ b/contrib/epee/include/console_handler.h
@@ -63,7 +63,8 @@ namespace epee
~async_stdin_reader()
{
- stop();
+ try { stop(); }
+ catch (...) { /* ignore */ }
}
#ifdef HAVE_READLINE
diff --git a/contrib/epee/include/net/levin_protocol_handler_async.h b/contrib/epee/include/net/levin_protocol_handler_async.h
index 0b1fe05fa..e9853ee26 100644
--- a/contrib/epee/include/net/levin_protocol_handler_async.h
+++ b/contrib/epee/include/net/levin_protocol_handler_async.h
@@ -275,6 +275,9 @@ public:
}
virtual ~async_protocol_handler()
{
+ try
+ {
+
m_deletion_initiated = true;
if(m_connection_initialized)
{
@@ -288,6 +291,9 @@ public:
CHECK_AND_ASSERT_MES_NO_RET(0 == boost::interprocess::ipcdetail::atomic_read32(&m_wait_count), "Failed to wait for operation completion. m_wait_count = " << m_wait_count);
MTRACE(m_connection_context << "~async_protocol_handler()");
+
+ }
+ catch (...) { /* ignore */ }
}
bool start_outer_call()
diff --git a/contrib/epee/include/net/net_helper.h b/contrib/epee/include/net/net_helper.h
index 2c2efcd82..94744ac21 100644
--- a/contrib/epee/include/net/net_helper.h
+++ b/contrib/epee/include/net/net_helper.h
@@ -106,7 +106,8 @@ namespace net_utils
~blocked_mode_client()
{
//profile_tools::local_coast lc("~blocked_mode_client()", 3);
- shutdown();
+ try { shutdown(); }
+ catch(...) { /* ignore */ }
}
inline
diff --git a/contrib/epee/src/mlog.cpp b/contrib/epee/src/mlog.cpp
index cd9867ff5..61d853ef4 100644
--- a/contrib/epee/src/mlog.cpp
+++ b/contrib/epee/src/mlog.cpp
@@ -137,7 +137,12 @@ void mlog_configure(const std::string &filename_base, bool console, const std::s
el::Loggers::addFlag(el::LoggingFlag::StrictLogFileSizeCheck);
el::Helpers::installPreRollOutCallback([filename_base, max_log_files](const char *name, size_t){
std::string rname = generate_log_filename(filename_base.c_str());
- rename(name, rname.c_str());
+ int ret = rename(name, rname.c_str());
+ if (ret < 0)
+ {
+ // can't log a failure, but don't do the file removal below
+ return;
+ }
if (max_log_files != 0)
{
std::vector<boost::filesystem::path> found_files;