diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2022-03-16 22:16:52 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2022-04-21 22:24:46 +0000 |
commit | c624d05de6b59fdd4b249ecd27e86d08c8684ffb (patch) | |
tree | 387020adb3d4a0c0fe6c9960e57a02dcb91a39d7 /src | |
parent | Merge pull request #8241 (diff) | |
download | monero-c624d05de6b59fdd4b249ecd27e86d08c8684ffb.tar.xz |
add a sanity check to RPC input data size
reported by m31007
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptonote_config.h | 1 | ||||
-rw-r--r-- | src/rpc/core_rpc_server.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index 80534fbc0..7c6a9a661 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -126,6 +126,7 @@ #define COMMAND_RPC_GET_BLOCKS_FAST_MAX_BLOCK_COUNT 1000 #define COMMAND_RPC_GET_BLOCKS_FAST_MAX_TX_COUNT 20000 +#define MAX_RPC_CONTENT_LENGTH 1048576 // 1 MB #define P2P_LOCAL_WHITE_PEERLIST_LIMIT 1000 #define P2P_LOCAL_GRAY_PEERLIST_LIMIT 5000 diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index 757e73906..126616243 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -344,6 +344,8 @@ namespace cryptonote if (m_rpc_payment) m_net_server.add_idle_handler([this](){ return m_rpc_payment->on_idle(); }, 60 * 1000); + m_net_server.get_config_object().m_max_content_length = MAX_RPC_CONTENT_LENGTH; + auto rng = [](size_t len, uint8_t *ptr){ return crypto::rand(len, ptr); }; return epee::http_server_impl_base<core_rpc_server, connection_context>::init( rng, std::move(port), std::move(bind_ip_str), |