Fix a -0 corner case in BN_div_internal()
authorjsing <jsing@openbsd.org>
Tue, 14 Feb 2023 18:19:27 +0000 (18:19 +0000)
committerjsing <jsing@openbsd.org>
Tue, 14 Feb 2023 18:19:27 +0000 (18:19 +0000)
commitae57c522841642bd680c4788b90ac931f9512451
treec2d334201659b8c30ea448280a208c3833432089
parent553747b429101252f4601d165bea0319b2586a33
Fix a -0 corner case in BN_div_internal()

If the numerator is negative, the numerator and divisor are the same
length (in words) and the absolute value of the divisor > the absolute
value of the numerator, the "no_branch" case produces -0 since negative
has already been set. Call BN_set_negative() at the end of the function
to avoid this.

ok tb@
lib/libcrypto/bn/bn_div.c