Return INT_MAX or INT_MIN from strtoint() on overflow. Previously, strtoint() set errno to ERANGE on overflow but returned the result of casting the long value to int. When the value is outside the range of int, this produces an implementation-defined result that cannot reliably indicate the direction of overflow. POSIX requires strtol() to return exactly LONG_MAX or LONG_MIN on overflow, which permits safe sign-testing or range-testing. By analogy, make strtoint() return INT_MAX or INT_MIN on overflow.
Back-patch, since future bug fixes may expect this behavior. Author: Chao Li <[email protected]> Reviewed-by: Tom Lane <[email protected]> Discussion: https://postgr.es/m/[email protected] Backpatch-through: 14 Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/ec65cbc00b2ccc82996e1c94b534e1fbf61fbcd1 Modified Files -------------- src/common/string.c | 8 ++++++++ 1 file changed, 8 insertions(+)
