From 434725096984264473fc977bc1f85db7191ce103 Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 4 Aug 2013 19:33:57 +0000 Subject: [PATCH] Another couple of memory leaks. git-svn-id: svn://svn.tartarus.org/sgt/putty@9988 cda61777-01e9-0310-a592-d414129be87e --- sshdss.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sshdss.c b/sshdss.c index eba03aa8..bf6c3ba5 100644 --- a/sshdss.c +++ b/sshdss.c @@ -268,8 +268,13 @@ static int dss_verifysig(void *key, char *sig, int siglen, } r = get160(&sig, &siglen); s = get160(&sig, &siglen); - if (!r || !s) + if (!r || !s) { + if (r) + freebn(r); + if (s) + freebn(s); return 0; + } /* * Step 1. w <- s^-1 mod q. @@ -624,6 +629,7 @@ static unsigned char *dss_sign(void *key, char *data, int datalen, int *siglen) s = modmul(kinv, hxr, dss->q); /* s = k^-1 * (hash + x*r) mod q */ freebn(hxr); freebn(kinv); + freebn(k); freebn(hash); /* -- 2.11.0