Re: Fix overflow in pg_size_pretty - Mailing list pgsql-hackers

From David Rowley
Subject Re: Fix overflow in pg_size_pretty
Date
Msg-id CAApHDvoRkYzK8LZaESvyuLgRjPH8ovK88YvxLTTqi5imk2+HMQ@mail.gmail.com
Whole thread Raw
In response to Re: Fix overflow in pg_size_pretty  (Joseph Koshakow <koshy44@gmail.com>)
Responses Re: Fix overflow in pg_size_pretty
List pgsql-hackers
On Sun, 28 Jul 2024 at 11:06, Joseph Koshakow <koshy44@gmail.com> wrote:
> > + uint64 usize = size < 0 ? (uint64) (-size) : (uint64) size;
>
> I think that the explicit test for PG_INT64_MIN is still required. If
> `size` is equal to PG_INT64_MIN then `-size` will overflow. You end up
> with the correct behavior if `size` wraps around, but that's only
> guaranteed on platforms that support the `-fwrapv` flag.

What if we spelt it out the same way as pg_lltoa() does?

i.e: uint64 usize = size < 0 ? 0 - (uint64) size : (uint64) size;

David



pgsql-hackers by date:

Previous
From: Joseph Koshakow
Date:
Subject: Re: Fix overflow in pg_size_pretty
Next
From: Corey Huinker
Date:
Subject: Re: Statistics Import and Export