summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt
diff options
context:
space:
mode:
Diffstat (limited to 'library/cpp/yt')
-rw-r--r--library/cpp/yt/memory/ref.cpp4
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_);