summaryrefslogtreecommitdiff
path: root/dss.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2006-07-07 09:17:18 +0000
committerMatt Johnston <matt@ucc.asn.au>2006-07-07 09:17:18 +0000
commit25339e52b73197513312470bc4b2e2c6a40b4161 (patch)
treec8aea06b5bb0a4aca4e782d0bfadd17b481013e2 /dss.c
parent973f09885b6616e30ce1080e44bd79186e5bb35b (diff)
downloaddropbear-25339e52b73197513312470bc4b2e2c6a40b4161.tar.gz
Fixes from Erik Hovland:
cli-authpubkey.c: fix leak of keybuf cli-kex.c: fix leak of fingerprint fp cli-service.c: remove commented out code dropbearkey.c: don't attepmt to free NULL key on failure common-kex.c: only free key if it is initialised keyimport.c: remove dead encrypted-key code don't leak a FILE* loading OpenSSH keys rsa.c, dss.c: check return values for some libtommath functions svr-kex.c: check return value retrieving DH kex mpint svr-tcpfwd.c: fix null-dereference if remote tcp forward request fails tcp-accept.c: don't incorrectly free the tcpinfo var
Diffstat (limited to 'dss.c')
-rw-r--r--dss.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/dss.c b/dss.c
index 84a093c..95062c6 100644
--- a/dss.c
+++ b/dss.c
@@ -338,7 +338,9 @@ void buf_put_dss_sign(buffer* buf, dss_key *key, const unsigned char* data,
/* generate k */
m_mp_init(&dss_protok);
bytes_to_mp(&dss_protok, proto_k, SHA512_HASH_SIZE);
- mp_mod(&dss_protok, key->q, &dss_k);
+ if (mp_mod(&dss_protok, key->q, &dss_k) != MP_OKAY) {
+ dropbear_exit("dss error");
+ }
mp_clear(&dss_protok);
m_burn(proto_k, SHA512_HASH_SIZE);
#else /* DSS_PROTOK not defined*/