From 4eadf2d6cd1aef35bea694ae9938cb4d74cf9239 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 25 Jan 1997 21:01:16 +0000
Subject: [PATCH] More autosize structure error checks.

---
 src/backend/storage/buffer/buf_init.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c
index c16988fc119..1dacabacc88 100644
--- a/src/backend/storage/buffer/buf_init.c
+++ b/src/backend/storage/buffer/buf_init.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.5 1997/01/23 18:14:40 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.6 1997/01/25 21:01:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -136,7 +136,10 @@ InitBufferPool(IPCKey key)
     int i;
     
     /* check padding of BufferDesc and BufferHdr */
-    if (sizeof(struct sbufdesc) != PADDED_SBUFDESC_SIZE)
+    /* we need both checks because a sbufdesc_padded > PADDED_SBUFDESC_SIZE
+       will shrink sbufdesc to the required size, which is bad */
+    if (sizeof(struct sbufdesc) != PADDED_SBUFDESC_SIZE ||
+	sizeof(struct sbufdesc_padded) > PADDED_SBUFDESC_SIZE)
     	elog(WARN,"Internal error:  sbufdesc does not have the proper size, "
 				"contact the Postgres developers");
     if (sizeof(struct sbufdesc_unpadded) <= PADDED_SBUFDESC_SIZE/2)
-- 
GitLab