Fix overflow in pg_size_pretty - Mailing list pgsql-hackers

From Joseph Koshakow
Subject Fix overflow in pg_size_pretty
Date
Msg-id CAAvxfHdTsMZPWEHUrZ=h3cky9Ccc3Mtx2whUHygY+ABP-mCmUw@mail.gmail.com
Whole thread Raw
Responses Re: Fix overflow in pg_size_pretty
Re: Fix overflow in pg_size_pretty
List pgsql-hackers
Hi all,

Attached is a patch that resolves an overflow in pg_size_pretty() that
resulted in unexpected behavior when PG_INT64_MIN was passed in as an
argument.

The pg_abs_s64() helper function is extracted and simplified from patch
0001 from [0]. I didn't add similar functions for other sized integers
since they'd be unused, but I'd be happy to add them if others
disagree.

`SELECT -9223372036854775808::bigint` results in an out of range error,
even though `-9223372036854775808` can fit in a `bigint` and
`SELECT pg_typeof(-9223372036854775808)` returns `bigint`. That's why
the `::bigint` cast is omitted from my test.

[0] https://www.postgresql.org/message-id/flat/CAAvxfHdBPOyEGS7s+xf4iaW0-cgiq25jpYdWBqQqvLtLe_t6tw@mail.gmail.com

Thanks,
Joseph Koshakow
Attachment

pgsql-hackers by date:

Previous
From: Andreas Karlsson
Date:
Subject: Re: tiny step toward threading: reduce dependence on setlocale()
Next
From: Tom Lane
Date:
Subject: Re: Protocol question regarding Portal vs Cursor