From 2f8e80ef5617aa546222564c62952ba9efd4a6d8 Mon Sep 17 00:00:00 2001 From: SpyCheese Date: Thu, 12 Oct 2023 14:54:14 +0300 Subject: [PATCH] Do not retranslate external messages with wrong initstate (#778) --- crypto/block/transaction.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crypto/block/transaction.cpp b/crypto/block/transaction.cpp index e82b1eeb..b1be19c4 100644 --- a/crypto/block/transaction.cpp +++ b/crypto/block/transaction.cpp @@ -1065,6 +1065,11 @@ bool Transaction::prepare_compute_phase(const ComputePhaseConfig& cfg) { } else if (in_msg_state.not_null()) { unpack_msg_state(true); // use only libraries } + if (in_msg_extern && in_msg_state.not_null() && account.addr != in_msg_state->get_hash().bits()) { + LOG(DEBUG) << "in_msg_state hash mismatch in external message"; + cp.skip_reason = ComputePhase::sk_bad_state; + return true; + } // initialize VM Ref stack = prepare_vm_stack(cp); if (stack.is_null()) {