diff options
| -rw-r--r-- | contrib/depends/packages/openssl.mk | 6 | ||||
| -rw-r--r-- | src/cryptonote_basic/miner.cpp | 3 | ||||
| -rw-r--r-- | src/cryptonote_core/cryptonote_tx_utils.cpp | 3 | ||||
| -rw-r--r-- | src/net/zmq.cpp | 6 | ||||
| -rw-r--r-- | src/net/zmq.h | 2 | ||||
| -rw-r--r-- | src/rpc/zmq_server.cpp | 4 | ||||
| -rw-r--r-- | src/wallet/wallet_errors.h | 2 |
7 files changed, 18 insertions, 8 deletions
diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk index 77d4b2d11..926b3b180 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -1,8 +1,8 @@ package=openssl -$(package)_version=3.0.19 -$(package)_download_path=https://www.openssl.org/source +$(package)_version=3.0.21 +$(package)_download_path=https://github.com/openssl/openssl/releases/download/openssl-$($(package)_version) $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=fa5a4143b8aae18be53ef2f3caf29a2e0747430b8bc74d32d88335b94ab63072 +$(package)_sha256_hash=617e29af8e421f46649484a4937e48c685e47f46488167c982f88bc4ec1d522f define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" ARFLAGS=$($(package)_arflags) RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" diff --git a/src/cryptonote_basic/miner.cpp b/src/cryptonote_basic/miner.cpp index 71b8f78cc..fd13ff74d 100644 --- a/src/cryptonote_basic/miner.cpp +++ b/src/cryptonote_basic/miner.cpp @@ -578,7 +578,8 @@ namespace cryptonote if ((b.major_version >= RX_BLOCK_VERSION) && !rx_set) { - crypto::rx_set_miner_thread(th_local_index, tools::get_max_concurrency()); + // Must be non-zero value because 0 means "not a miner thread, run with secure JIT" in rx-slow-hash.c + crypto::rx_set_miner_thread(th_local_index + 1, tools::get_max_concurrency()); rx_set = true; } diff --git a/src/cryptonote_core/cryptonote_tx_utils.cpp b/src/cryptonote_core/cryptonote_tx_utils.cpp index c350e24c4..7aea5cf50 100644 --- a/src/cryptonote_core/cryptonote_tx_utils.cpp +++ b/src/cryptonote_core/cryptonote_tx_utils.cpp @@ -453,11 +453,12 @@ namespace cryptonote crypto::public_key out_eph_public_key; crypto::view_tag view_tag; - hwdev.generate_output_ephemeral_keys(tx.version,sender_account_keys, txkey_pub, tx_key, + const bool r = hwdev.generate_output_ephemeral_keys(tx.version,sender_account_keys, txkey_pub, tx_key, dst_entr, change_addr, output_index, need_additional_txkeys, additional_tx_keys, additional_tx_public_keys, amount_keys, out_eph_public_key, use_view_tags, view_tag); + CHECK_AND_ASSERT_MES(r, false, "Failed to generate output ephemeral keys"); tx_out out; cryptonote::set_tx_out(dst_entr.amount, out_eph_public_key, use_view_tags, view_tag, out); diff --git a/src/net/zmq.cpp b/src/net/zmq.cpp index 2b3ca8376..4a9d3e162 100644 --- a/src/net/zmq.cpp +++ b/src/net/zmq.cpp @@ -150,6 +150,12 @@ namespace zmq if ((last = zmq_msg_recv(part.handle(), socket, flags)) < 0) return last; + if (max_message_size < payload.size() || + max_message_size - payload.size() < part.size()) + { + errno = EMSGSIZE; + return -1; + } payload.append(part.data(), part.size()); if (!zmq_msg_more(part.handle())) break; diff --git a/src/net/zmq.h b/src/net/zmq.h index 18bb80c8b..68b6a71be 100644 --- a/src/net/zmq.h +++ b/src/net/zmq.h @@ -64,6 +64,8 @@ namespace net { namespace zmq { + constexpr std::size_t max_message_size = 10 * 1024 * 1024; // 10 MiB + //! \return Category for ZMQ errors. const std::error_category& error_category() noexcept; diff --git a/src/rpc/zmq_server.cpp b/src/rpc/zmq_server.cpp index 7ebb6c49f..3f1f38e21 100644 --- a/src/rpc/zmq_server.cpp +++ b/src/rpc/zmq_server.cpp @@ -46,7 +46,7 @@ namespace cryptonote namespace { constexpr const int num_zmq_threads = 1; - constexpr const std::int64_t max_message_size = 10 * 1024 * 1024; // 10 MiB + constexpr const std::int64_t max_frame_size = net::zmq::max_message_size; constexpr const std::chrono::seconds linger_timeout{2}; // wait period for pending out messages net::zmq::socket init_socket(void* context, int type, epee::span<const std::string> addresses) @@ -62,7 +62,7 @@ namespace return nullptr; } - if (zmq_setsockopt(out.get(), ZMQ_MAXMSGSIZE, std::addressof(max_message_size), sizeof(max_message_size)) != 0) + if (zmq_setsockopt(out.get(), ZMQ_MAXMSGSIZE, std::addressof(max_frame_size), sizeof(max_frame_size)) != 0) { MONERO_LOG_ZMQ_ERROR("Failed to set maximum incoming message size"); return nullptr; diff --git a/src/wallet/wallet_errors.h b/src/wallet/wallet_errors.h index c54cd3499..e0a767159 100644 --- a/src/wallet/wallet_errors.h +++ b/src/wallet/wallet_errors.h @@ -440,7 +440,7 @@ namespace tools struct out_of_hashchain_bounds_error : public refresh_error { explicit out_of_hashchain_bounds_error(std::string&& loc) - : refresh_error(std::move(loc), "Index out of bounds of of hashchain") + : refresh_error(std::move(loc), "Index out of bounds of hashchain") { } |
