From 10789e3cdda7b944acb4b59624c34a2ccfaea6e5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 6 Aug 2015 14:57:44 +0200 Subject: tools: Fix memory leak for functions "I" and "G". * src/mpicalc.c (do_inv, do_gcd): Init A after stack check. -- Reported-by: Ismo Puustinen Signed-off-by: Werner Koch --- src/mpicalc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mpicalc.c b/src/mpicalc.c index f1fbbefe..ebd1bbb9 100644 --- a/src/mpicalc.c +++ b/src/mpicalc.c @@ -200,12 +200,14 @@ do_powm (void) static void do_inv (void) { - gcry_mpi_t a = mpi_new (0); + gcry_mpi_t a; + if (stackidx < 2) { fputs ("stack underflow\n", stderr); return; } + a = mpi_new (0); mpi_invm (a, stack[stackidx - 2], stack[stackidx - 1]); mpi_set (stack[stackidx - 2], a); mpi_release (a); @@ -215,12 +217,14 @@ do_inv (void) static void do_gcd (void) { - gcry_mpi_t a = mpi_new (0); + gcry_mpi_t a; + if (stackidx < 2) { fputs ("stack underflow\n", stderr); return; } + a = mpi_new (0); mpi_gcd (a, stack[stackidx - 2], stack[stackidx - 1]); mpi_set (stack[stackidx - 2], a); mpi_release (a); -- cgit v1.2.1