diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-11-15 13:51:54 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-11-15 15:53:21 +0000 |
commit | 2b3595d0fe056ec4245ad3177d56c1e92da1ff9e (patch) | |
tree | b889e5f02780a6bf547cab83f7d6952f05313665 /contrib | |
parent | Merge pull request #4842 (diff) | |
download | monero-2b3595d0fe056ec4245ad3177d56c1e92da1ff9e.tar.xz |
various: do not propagate exception through dtor
Coverity 189689, 189690, 189692, 189695
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/epee/include/mlocker.h | 2 | ||||
-rw-r--r-- | contrib/epee/src/mlocker.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/contrib/epee/include/mlocker.h b/contrib/epee/include/mlocker.h index d2fc2ed58..a6d94b3d2 100644 --- a/contrib/epee/include/mlocker.h +++ b/contrib/epee/include/mlocker.h @@ -73,7 +73,7 @@ namespace epee mlocked(const T &&t): T(t) { mlocker::lock(this, sizeof(T)); } mlocked(const mlocked<T> &&mt): T(mt) { mlocker::lock(this, sizeof(T)); } mlocked<T> &operator=(const mlocked<T> &mt) { T::operator=(mt); return *this; } - ~mlocked() { mlocker::unlock(this, sizeof(T)); } + ~mlocked() { try { mlocker::unlock(this, sizeof(T)); } catch (...) { /* do not propagate */ } } }; template<typename T> diff --git a/contrib/epee/src/mlocker.cpp b/contrib/epee/src/mlocker.cpp index 5573d591a..eb863b9af 100644 --- a/contrib/epee/src/mlocker.cpp +++ b/contrib/epee/src/mlocker.cpp @@ -108,7 +108,8 @@ namespace epee mlocker::~mlocker() { - unlock(ptr, len); + try { unlock(ptr, len); } + catch (...) { /* ignore and do not propagate through the dtor */ } } void mlocker::lock(void *ptr, size_t len) |