diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2020-05-17 22:55:12 +0200 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2020-05-17 22:55:12 +0200 |
commit | 4604cb0c838d4bd9ad1616b8531f2defbb0671a9 (patch) | |
tree | 2a1e28e7e90ddd890a37b94ba0938af3aeab1f6e /mpq | |
parent | f8f95a23917bdf66c16358340200a2f0e4c1a463 (diff) | |
download | gmp-4604cb0c838d4bd9ad1616b8531f2defbb0671a9.tar.gz |
mpq/cmp.c: Avoid int overflow.
Diffstat (limited to 'mpq')
-rw-r--r-- | mpq/cmp.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -70,8 +70,9 @@ mpq_cmp_numden (mpq_srcptr op1, mpz_srcptr num_op2, mpz_srcptr den_op2) { int cmp; + /* Cannot use num1_sign - num2_size, may overflow an "int" */ if (num1_sign != num2_size) - return num1_sign - num2_size; + return (num1_sign > num2_size) ? 1 : -1; cmp = mpn_cmp (PTR(NUM(op1)), PTR(num_op2), num1_size); return (num1_sign > 0 ? cmp : -cmp); |