From 4cd26aa8464c1660636b4e85a9fde0895bbb2016 Mon Sep 17 00:00:00 2001 From: turuslan Date: Wed, 17 Jul 2024 12:50:49 +0500 Subject: [PATCH] wasm memzero Signed-off-by: turuslan --- core/runtime/common/module_instance.cpp | 5 +++++ core/runtime/memory.hpp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/core/runtime/common/module_instance.cpp b/core/runtime/common/module_instance.cpp index 4f4d00f178..0e23db0d81 100644 --- a/core/runtime/common/module_instance.cpp +++ b/core/runtime/common/module_instance.cpp @@ -6,6 +6,8 @@ #include "runtime/module_instance.hpp" +#include + #include "common/int_serialization.hpp" #include "runtime/memory_provider.hpp" #include "runtime/trie_storage_provider.hpp" @@ -59,6 +61,9 @@ namespace kagome::runtime { "__heap_base too low, allocations will overwrite wasm data segments"); } + auto memory_size = memory.memory()->size(); + OPENSSL_cleanse(memory.view(0, memory_size).value().data(), memory_size); + forDataSegment([&](auto offset, auto segment) { memory.storeBuffer(offset, segment); }); diff --git a/core/runtime/memory.hpp b/core/runtime/memory.hpp index 5c41ef09e2..b0483da2a6 100644 --- a/core/runtime/memory.hpp +++ b/core/runtime/memory.hpp @@ -121,6 +121,10 @@ namespace kagome::runtime { return PtrSize{ptr, static_cast(v.size())}.combine(); } + auto &memory() const { + return handle_; + } + private: std::shared_ptr handle_; std::unique_ptr allocator_;