BUG #16861: Undefined behavior in power_var_int under the address sanitizer when exponent is INT_MIN
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.
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#L10299Target contains warnings: UndefinedBehaviorSanitizer:
signed-integer-overflow .../src/backend/utils/adt/numeric.c:10299This 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