Re: BUG #14722: Segfault in tuplesort_heap_siftup, 32 bit overflow
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Andres Freund <andres@anarazel.de>,
Sergey Koposov <skoposov@cmu.edu>,
"pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>
Date: 2017-07-12T16:53:08Z
Lists: pgsql-bugs
Peter Geoghegan <pg@bowt.ie> writes: > On Wed, Jul 12, 2017 at 9:20 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote: >> Right, it's a hypothetical portability issue. The assumption we're making is >> that UINT_MAX >= INT_MAX * 2 + 1. I'm not aware of any system where it's not >> true, but I don't know what the C standards say about that. > Intuitively, it seems very likely to be true, since two's complement > arithmetic is already assumed by Postgres, ... right. There haven't been any non-twos-complement machines in the wild for probably 50 years, and even if there were, this would be *way* down the list of problems you'd have to fix to get Postgres to run on one of them. I think a comment is plenty sufficient. regards, tom lane
Commits
-
Avoid integer overflow while sifting-up a heap in tuplesort.c.
- e439bbe9996f 9.4.13 landed
- e7213fe2bda8 9.5.8 landed
- 512f67c8d02c 10.0 landed
- 09c598898166 9.6.4 landed
-
Implement binary heap replace-top operation in a smarter way.
- 24598337c8d2 10.0 cited
-
Permit super-MaxAllocSize allocations with MemoryContextAllocHuge().
- 263865a48973 9.4.0 cited