BUG #16861: Undefined behavior in power_var_int under the address sanitizer when exponent is INT_MIN

Started by PG Bug reporting formabout 5 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 16861
Logged by: Niranjan Nilakantan
Email address: niranjann@google.com
PostgreSQL version: 13.2
Operating system: Linux
Description:

The newly added test from
https://github.com/postgres/postgres/commit/bc43b7c2c06c32264efe79d0b86abd41236f1d5b
triggers an overflow/undefined behavior at this line
https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/numeric.c#L10299

Target contains warnings: UndefinedBehaviorSanitizer:
signed-integer-overflow .../src/backend/utils/adt/numeric.c:10299

This applies to all versions of Postgres.

#2Bruce Momjian
bruce@momjian.us
In reply to: PG Bug reporting form (#1)
Re: BUG #16861: Undefined behavior in power_var_int under the address sanitizer when exponent is INT_MIN

On Thu, Feb 11, 2021 at 10:59:47PM +0000, PG Bug reporting form wrote:

The following bug has been logged on the website:

Bug reference: 16861
Logged by: Niranjan Nilakantan
Email address: niranjann@google.com
PostgreSQL version: 13.2
Operating system: Linux
Description:

The newly added test from
https://github.com/postgres/postgres/commit/bc43b7c2c06c32264efe79d0b86abd41236f1d5b
triggers an overflow/undefined behavior at this line
https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/numeric.c#L10299

Target contains warnings: UndefinedBehaviorSanitizer:
signed-integer-overflow .../src/backend/utils/adt/numeric.c:10299

This applies to all versions of Postgres.

Uh, I think we are trying to test for overflow here, which is why it is
triggering the warning.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

The usefulness of a cup is in its emptiness, Bruce Lee