aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/SecureMemoryAllocator.h
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2023-12-14 08:58:53 +0000
committersaturneric <[email protected]>2023-12-14 08:58:53 +0000
commit79783510863445b5068eef092a1f2650733a5b02 (patch)
treed8e6070b85467451c658ce4122c45a5a132e6d44 /src/core/function/SecureMemoryAllocator.h
parentfix: slove a memory issue found by valgrind (diff)
downloadGpgFrontend-79783510863445b5068eef092a1f2650733a5b02.tar.gz
GpgFrontend-79783510863445b5068eef092a1f2650733a5b02.zip
fix: slove some memory issues
Diffstat (limited to 'src/core/function/SecureMemoryAllocator.h')
-rw-r--r--src/core/function/SecureMemoryAllocator.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/function/SecureMemoryAllocator.h b/src/core/function/SecureMemoryAllocator.h
index a0905ba7..593172c5 100644
--- a/src/core/function/SecureMemoryAllocator.h
+++ b/src/core/function/SecureMemoryAllocator.h
@@ -29,6 +29,7 @@
#pragma once
#include <cstdint>
+#include <memory>
namespace GpgFrontend {
@@ -45,12 +46,17 @@ template <typename T>
struct SecureObjectDeleter {
void operator()(T *ptr) {
if (ptr) {
- SPDLOG_TRACE("secure object deleter trys to free object, obj: {}",
- static_cast<void *>(ptr));
+ SPDLOG_TRACE(
+ "secure object deleter trys to deconstruct and free object, "
+ "type: {}, addr: {}",
+ typeid(T).name(), static_cast<void *>(ptr));
ptr->~T();
SecureMemoryAllocator::Deallocate(ptr);
}
}
};
+template <typename T>
+using UniquePtrWithSecureDeleter = std::unique_ptr<T, SecureObjectDeleter<T>>;
+
} // namespace GpgFrontend \ No newline at end of file