From 302ac7f27197855afa8c89fae36c85c124ae156b Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas <heikki.linnakangas@iki.fi> Date: Tue, 30 Jun 2015 13:44:04 +0300 Subject: [PATCH] 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. --- src/include/storage/bufpage.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h index c2fbffc8e9b..a2f78ee56ce 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) \ ) -- GitLab