summaryrefslogtreecommitdiff
path: root/mpi/mpi-cmp.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2020-07-06 12:01:42 +0200
committerWerner Koch <wk@gnupg.org>2020-07-06 12:01:42 +0200
commit1f3a92e103d4a8e019d8d022647a2b9fb2681327 (patch)
treef64efc69b0e9fa5d1282ecc556b45ec2baf5b42e /mpi/mpi-cmp.c
parent1db1dc7945b111b6e20a8420ad38a358316681ab (diff)
downloadlibgcrypt-1f3a92e103d4a8e019d8d022647a2b9fb2681327.tar.gz
mpi: Consider +0 and -0 the same in mpi_cmp.
* mpi/mpi-cmp.c (do_mpi_cmp): Check size of U an V. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'mpi/mpi-cmp.c')
-rw-r--r--mpi/mpi-cmp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/mpi/mpi-cmp.c b/mpi/mpi-cmp.c
index 66e09612..8927fa0e 100644
--- a/mpi/mpi-cmp.c
+++ b/mpi/mpi-cmp.c
@@ -89,8 +89,11 @@ do_mpi_cmp (gcry_mpi_t u, gcry_mpi_t v, int absmode)
usign = absmode? 0 : u->sign;
vsign = absmode? 0 : v->sign;
- /* Compare sign bits. */
+ /* Special treatment for +0 == -0 */
+ if (!usize && !vsize)
+ return 0;
+ /* Compare sign bits. */
if (!usign && vsign)
return 1;
if (usign && !vsign)