From: Heikki Linnakangas Date: Tue, 30 Jun 2015 10:44:04 +0000 (+0300) Subject: Add assertion to check the special size is sane before dereferencing it. X-Git-Tag: REL9_5_ALPHA2~162 X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=302ac7f27197855afa8c89fae36c85c124ae156b;p=postgresql-pgindent.git Add assertion to check the special size is sane before dereferencing it. This seems useful to catch errors of the sort I just fixed, where PageGetSpecialPointer is called before initializing the page. --- diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h index c2fbffc8e9..a2f78ee56c 100644 --- a/src/include/storage/bufpage.h +++ b/src/include/storage/bufpage.h @@ -304,6 +304,8 @@ typedef PageHeaderData *PageHeader; #define PageGetSpecialPointer(page) \ ( \ AssertMacro(PageIsValid(page)), \ + AssertMacro(((PageHeader) (page))->pd_special <= BLCKSZ), \ + AssertMacro(((PageHeader) (page))->pd_special >= SizeOfPageHeaderData), \ (char *) ((char *) (page) + ((PageHeader) (page))->pd_special) \ )