From 6131ddef109cdd039e2f5d9f7366a8da5bee9594 Mon Sep 17 00:00:00 2001 From: jeffro256 Date: Fri, 11 Jul 2025 10:39:00 -0500 Subject: [PATCH] rpc: return error correctly on bad key image string Because of the missing `return` statement, the status is set to "OK" later on in the method when it shouldn't be. Thank you to ADA Logics and the MAGIC Monero Fund for reporting this! --- src/rpc/core_rpc_server.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index 207e1e589c..0e8c019a01 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -1287,8 +1287,10 @@ namespace cryptonote if(b.size() != sizeof(crypto::key_image)) { res.status = "Failed, size of data mismatch"; + return true; } - key_images.push_back(*reinterpret_cast(b.data())); + crypto::key_image &ki = key_images.emplace_back(); + memcpy(&ki, b.data(), sizeof(crypto::key_image)); } std::vector spent_status; bool r = m_core.are_key_images_spent(key_images, spent_status);