diff options
author | saturneric <[email protected]> | 2023-12-14 08:58:53 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2023-12-14 08:58:53 +0000 |
commit | 79783510863445b5068eef092a1f2650733a5b02 (patch) | |
tree | d8e6070b85467451c658ce4122c45a5a132e6d44 /src/core/function/SecureMemoryAllocator.h | |
parent | fix: slove a memory issue found by valgrind (diff) | |
download | GpgFrontend-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.h | 10 |
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 |