From 586ee64209ecf9e6ec7fe3f18edc07b127941184 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Wed, 20 Dec 2017 14:21:50 +0000 Subject: [PATCH] simplewallet: lock idle scope in {im,ex}port_{key_images,outputs} This ensures we can't get races --- src/simplewallet/simplewallet.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 64e665fb3..a6406c1d5 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -6046,6 +6046,7 @@ bool simple_wallet::export_key_images(const std::vector &args) try { + LOCK_IDLE_SCOPE(); if (!m_wallet->export_key_images(filename)) { fail_msg_writer() << tr("failed to save file ") << filename; @@ -6078,6 +6079,7 @@ bool simple_wallet::import_key_images(const std::vector &args) } std::string filename = args[0]; + LOCK_IDLE_SCOPE(); try { uint64_t spent = 0, unspent = 0; @@ -6109,6 +6111,7 @@ bool simple_wallet::export_outputs(const std::vector &args) if (m_wallet->ask_password() && !get_and_verify_password()) { return true; } std::string filename = args[0]; + LOCK_IDLE_SCOPE(); try { std::vector outs = m_wallet->export_outputs(); @@ -6207,6 +6210,7 @@ bool simple_wallet::import_outputs(const std::vector &args) boost::archive::binary_iarchive ar(iss); ar >> outputs; } + LOCK_IDLE_SCOPE(); size_t n_outputs = m_wallet->import_outputs(outputs); success_msg_writer() << boost::lexical_cast(n_outputs) << " outputs imported"; }