diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c index c16988fc1192b8d528f4db3d2ff7b0840ee4a71b..1dacabacc88d34237af1676cab19980e3eb9cbcc 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)