From cd53cdbc3774fb193bdebcdc5d7019ddebc16dbc Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 11 Sep 2014 17:06:16 +0200 Subject: mpi: Improve mpi_invm to detect bad input. * mpi/mpi-inv.c (mpi_invm): Return 0 for bad input. -- Without this patch the function may enter an endless loop. This is a backport from libgcrypt. GnuPG-bug-id: 1713 --- mpi/mpi-inv.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mpi/mpi-inv.c b/mpi/mpi-inv.c index b76263047..361c57ea4 100644 --- a/mpi/mpi-inv.c +++ b/mpi/mpi-inv.c @@ -165,6 +165,11 @@ mpi_invm( MPI x, MPI a, MPI n ) int sign; int odd ; + if (!mpi_cmp_ui (a, 0)) + return 0; /* Inverse does not exists. */ + if (!mpi_cmp_ui (n, 1)) + return 0; /* Inverse does not exists. */ + u = mpi_copy(a); v = mpi_copy(n); -- cgit v1.2.3