summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2015-08-06 14:57:44 +0200
committerWerner Koch <wk@gnupg.org>2015-08-06 14:57:44 +0200
commit10789e3cdda7b944acb4b59624c34a2ccfaea6e5 (patch)
tree63d18b25568b0e2386391c91ad9de1f0535789d0 /src
parent1d896371fbc94c605fce35eabcde01e24dd22892 (diff)
downloadlibgcrypt-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.c8
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);