Fix numeric_power() when the exponent is INT_MIN.

Dean Rasheed <dean.a.rasheed@gmail.com>

Commit: 9a299dff25a5f945cc2ee0c00b705857f966e169
Author: Dean Rasheed <dean.a.rasheed@gmail.com>
Date: 2021-01-05T11:02:46Z
Releases: 9.6.21
Fix numeric_power() when the exponent is INT_MIN.

In power_var_int(), the computation of the number of significant
digits to use in the computation used log(Abs(exp)), which isn't safe
because Abs(exp) returns INT_MIN when exp is INT_MIN. Use fabs()
instead of Abs(), so that the exponent is cast to a double before the
absolute value is taken.

Back-patch to 9.6, where this was introduced (by 7d9a4737c2).

Discussion: https://postgr.es/m/CAEZATCVd6pMkz=BrZEgBKyqqJrt2xghr=fNc8+Z=5xC6cgWrWA@mail.gmail.com

Files

Discussion