From cbdaa27f9798bfeb3bd04afadb5dccdcda361de3 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed, 12 Jul 2000 05:15:20 +0000
Subject: [PATCH] Repair missing MEMORY_CONTEXT_CHECKING logic for realloc().
 Doesn't anyone around here run regression tests before submitting patches, or
 before committing them?

---
 src/backend/utils/mmgr/aset.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c
index 6c6f58b0222..12affe6731f 100644
--- a/src/backend/utils/mmgr/aset.c
+++ b/src/backend/utils/mmgr/aset.c
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.30 2000/07/12 02:37:23 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.31 2000/07/12 05:15:20 tgl Exp $
  *
  * NOTE:
  *	This is a new (Feb. 05, 1999) implementation of the allocation set
@@ -696,7 +696,17 @@ AllocSetRealloc(MemoryContext context, void *pointer, Size size)
 	 */
 	oldsize = AllocPointerGetSize(pointer);
 	if (oldsize >= size)
+	{
+#ifdef MEMORY_CONTEXT_CHECKING		
+		AllocChunk	chunk = AllocPointerGetChunk(pointer);
+
+		/* mark memory for memory leak searching */
+		memset(((char *) chunk) + (ALLOC_CHUNKHDRSZ + size), 
+				0x7F, chunk->size - size);
+		chunk->data_size = size;
+#endif
 		return pointer;
+	}
 
 	if (oldsize >= ALLOC_BIGCHUNK_LIMIT)
 	{
@@ -711,7 +721,6 @@ AllocSetRealloc(MemoryContext context, void *pointer, Size size)
 		AllocBlock	block = set->blocks;
 		AllocBlock	prevblock = NULL;
 		Size		blksize;
-
 #ifdef MEMORY_CONTEXT_CHECKING		
 		Size		data_size = size;
 #endif
-- 
GitLab