aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-02-10 20:39:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-02-10 20:39:08 +0000
commit082aca9ec2854f8e25730c37411685f51a6277de (patch)
tree8db209b8744c7ed80c9bd24e0105ef44e91e5cc1 /src
parent0028b22d68a7e614a1e8fd2b4bca3bf2166c13b2 (diff)
downloadpostgresql-082aca9ec2854f8e25730c37411685f51a6277de.tar.gz
postgresql-082aca9ec2854f8e25730c37411685f51a6277de.zip
Fix PageGetExactFreeSpace() so that it actually behaves sensibly
if pd_lower > pd_upper, rather than merely claiming to. This would only matter if the page header were corrupt, which shouldn't occur, but ...
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/page/bufpage.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c
index 32b80c182f0..ad1c8c3ed3f 100644
--- a/src/backend/storage/page/bufpage.c
+++ b/src/backend/storage/page/bufpage.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/page/bufpage.c,v 1.77 2008/01/01 19:45:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/page/bufpage.c,v 1.78 2008/02/10 20:39:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -489,6 +489,9 @@ PageGetExactFreeSpace(Page page)
space = (int) ((PageHeader) page)->pd_upper -
(int) ((PageHeader) page)->pd_lower;
+ if (space < 0)
+ return 0;
+
return (Size) space;
}