diff options
author | Werner Koch <wk@gnupg.org> | 2015-08-06 14:57:44 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2015-08-06 14:57:44 +0200 |
commit | 10789e3cdda7b944acb4b59624c34a2ccfaea6e5 (patch) | |
tree | 63d18b25568b0e2386391c91ad9de1f0535789d0 /src | |
parent | 1d896371fbc94c605fce35eabcde01e24dd22892 (diff) | |
download | libgcrypt-10789e3cdda7b944acb4b59624c34a2ccfaea6e5.tar.gz |
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 <ismo.puustinen@intel.com>
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/mpicalc.c | 8 |
1 files changed, 6 insertions, 2 deletions
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); |