From 9556b7918e6abccb2dc19f20dbf572d41cd35cb4 Mon Sep 17 00:00:00 2001 From: Karina Litskevich Date: Tue, 14 Feb 2023 17:13:17 +0300 Subject: [PATCH v1 1/2] Fix VALGRIND_MAKE_MEM_DEFINED() calls --- src/backend/utils/mmgr/aset.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c index 740729b5d0..1ff0bb83cb 100644 --- a/src/backend/utils/mmgr/aset.c +++ b/src/backend/utils/mmgr/aset.c @@ -1199,7 +1199,7 @@ AllocSetRealloc(void *pointer, Size size) * old allocation. */ #ifdef USE_VALGRIND - if (oldsize > chunk->requested_size) + if (size > chunk->requested_size && oldsize > chunk->requested_size) VALGRIND_MAKE_MEM_UNDEFINED((char *) pointer + chunk->requested_size, oldsize - chunk->requested_size); #endif @@ -1215,7 +1215,10 @@ AllocSetRealloc(void *pointer, Size size) * allocation; it could have been as small as one byte. We have to be * conservative and just mark the entire old portion DEFINED. */ - VALGRIND_MAKE_MEM_DEFINED(pointer, oldsize); + if (size >= oldsize) + VALGRIND_MAKE_MEM_DEFINED(pointer, oldsize); + else + VALGRIND_MAKE_MEM_DEFINED(pointer, size); #endif /* Ensure any padding bytes are marked NOACCESS. */ -- 2.25.1