From 65e5cb5d5dfa17f6373a5df7d24ce93a1f1fc1f5 Mon Sep 17 00:00:00 2001
From: Matthias van de Meent <boekewurm@gmail.com>
Date: Wed, 31 Mar 2021 10:16:28 +0200
Subject: [PATCH v5 2/2] Clobber free page space in PageRepairFragmentation.

We cannot mark this undefined for valgrind because PageAddItemExtended
has checks that it is inserting into defined memory.
---
 src/backend/storage/page/bufpage.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c
index a591055699..e3fc1ca9cd 100644
--- a/src/backend/storage/page/bufpage.c
+++ b/src/backend/storage/page/bufpage.c
@@ -788,6 +788,12 @@ PageRepairFragmentation(Page page)
 		nunused = nunused - (nline - lastUsed);
 	}
 
+#ifdef CLOBBER_FREED_MEMORY
+	memset(((char *) page) + ((PageHeader) page)->pd_lower,
+		0x7f,
+		((PageHeader) page)->pd_upper - ((PageHeader) page)->pd_upper);
+#endif
+
 	/* Set hint bit for PageAddItemExtended */
 	if (nunused > 0)
 		PageSetHasFreeLinePointers(page);
-- 
2.20.1

