diff options
| -rw-r--r-- | library/cpp/yt/memory/ref.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/library/cpp/yt/memory/ref.cpp b/library/cpp/yt/memory/ref.cpp index 5a6ca1e3373..1743680b581 100644 --- a/library/cpp/yt/memory/ref.cpp +++ b/library/cpp/yt/memory/ref.cpp @@ -3,6 +3,7 @@ #include "blob.h" #include <library/cpp/yt/malloc/malloc.h> +#include <library/cpp/yt/memory/poison.h> #include <library/cpp/yt/misc/port.h> @@ -99,6 +100,7 @@ class TAllocationHolderBase public: ~TAllocationHolderBase() { + PoisonFreedMemory(GetRef()); #ifdef YT_ENABLE_REF_COUNTED_TRACKING TRefCountedTrackerFacade::FreeTagInstance(Cookie_); TRefCountedTrackerFacade::FreeSpace(Cookie_, Size_); @@ -129,6 +131,8 @@ protected: #endif if (options.InitializeStorage) { ::memset(static_cast<TDerived*>(this)->GetBegin(), 0, Size_); + } else { + PoisonUninitializedMemory(GetRef()); } #ifdef YT_ENABLE_REF_COUNTED_TRACKING TRefCountedTrackerFacade::AllocateTagInstance(Cookie_); |
