summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVitaly Stoyan <[email protected]>2024-01-31 14:00:51 +0300
committerGitHub <[email protected]>2024-01-31 14:00:51 +0300
commit264201fd2cfddd564dcca3daae0c5b744c4aab51 (patch)
treecac88b2d17852c4a38ec22c46f30c440e696de14
parentb8034cddecac017a620e570b43377007a5de75cf (diff)
YQL-17706 fixed deallocation size (#1449)
* init * pfree
-rw-r--r--ydb/library/yql/minikql/mkql_alloc.cpp3
-rw-r--r--ydb/library/yql/parser/pg_wrapper/comp_factory.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/ydb/library/yql/minikql/mkql_alloc.cpp b/ydb/library/yql/minikql/mkql_alloc.cpp
index 2ee6034cb96..fc2ae88240f 100644
--- a/ydb/library/yql/minikql/mkql_alloc.cpp
+++ b/ydb/library/yql/minikql/mkql_alloc.cpp
@@ -37,7 +37,8 @@ void TAllocState::CleanupPAllocList(TListEntry* root) {
for (auto curr = root->Right; curr != root; ) {
auto next = curr->Right;
auto size = ((TMkqlPAllocHeader*)curr)->Size;
- MKQLFreeWithSize(curr, size, EMemorySubPool::Default); // may free items from OffloadedBlocksRoot
+ auto fullSize = size + sizeof(TMkqlPAllocHeader);
+ MKQLFreeWithSize(curr, fullSize, EMemorySubPool::Default); // may free items from OffloadedBlocksRoot
curr = next;
}
diff --git a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
index 4dd8d5e7e41..930a9ed9e76 100644
--- a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
+++ b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
@@ -127,7 +127,8 @@ void MkqlAllocSetFree(MemoryContext context, void* pointer) {
auto header = ((TMkqlPAllocHeader*)pointer) - 1;
// remove this block from list
header->U.Entry.Unlink();
- MKQLFreeWithSize(header, header->Size, EMemorySubPool::Default);
+ auto fullSize = header->Size + sizeof(TMkqlPAllocHeader);
+ MKQLFreeWithSize(header, fullSize, EMemorySubPool::Default);
}
}