Fix PageGetExactFreeSpace() so that it actually behaves sensibly
authorTom Lane <[email protected]>
Sun, 10 Feb 2008 20:39:08 +0000 (20:39 +0000)
committerTom Lane <[email protected]>
Sun, 10 Feb 2008 20:39:08 +0000 (20:39 +0000)
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 ...

src/backend/storage/page/bufpage.c

index f34dd7e7b756997e214fd1a1d01eaa1b96657d63..eea03deaa73d8e6003658d2e537b75b8457fec91 100644 (file)
@@ -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;
 }