diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-02-10 20:39:08 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-02-10 20:39:08 +0000 |
commit | 082aca9ec2854f8e25730c37411685f51a6277de (patch) | |
tree | 8db209b8744c7ed80c9bd24e0105ef44e91e5cc1 /src | |
parent | 0028b22d68a7e614a1e8fd2b4bca3bf2166c13b2 (diff) | |
download | postgresql-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.c | 5 |
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; } |