From e2a4f68ef6bfe57db6faa4bb3d85fc706967626d Mon Sep 17 00:00:00 2001 From: selsta Date: Sun, 26 Jul 2026 22:03:09 +0200 Subject: [PATCH] wallet2: check for overflow when calculating fee from weight --- src/wallet/wallet2.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 49d65e42f..46d7086fa 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -306,6 +306,8 @@ uint64_t calculate_fee(uint64_t fee_per_kb, size_t bytes) uint64_t calculate_fee_from_weight(uint64_t base_fee, uint64_t weight, uint64_t fee_quantization_mask) { + THROW_WALLET_EXCEPTION_IF(base_fee != 0 && weight > std::numeric_limits::max() / base_fee, + tools::error::wallet_internal_error, "Fee calculation overflow"); uint64_t fee = weight * base_fee; fee = (fee + fee_quantization_mask - 1) / fee_quantization_mask * fee_quantization_mask; return fee;