From 1bb20a3812d8a52f7a7933258c27d810db973803 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 11 Feb 2004 13:58:27 +0000 Subject: [PATCH] Jacob's last-minute testing found a couple of trivial bugs in import.c, and my attempts to reproduce them in cmdgen found another one there :-) git-svn-id: svn://svn.tartarus.org/sgt/putty@3847 cda61777-01e9-0310-a592-d414129be87e --- cmdgen.c | 2 +- import.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cmdgen.c b/cmdgen.c index 2f0fdc1d..a5fccb07 100644 --- a/cmdgen.c +++ b/cmdgen.c @@ -730,7 +730,7 @@ int main(int argc, char **argv) case SSH_KEYTYPE_OPENSSH: case SSH_KEYTYPE_SSHCOM: ssh2key = import_ssh2(&infilename, intype, passphrase); - if (ssh2key) + if (ssh2key && ssh2key != SSH2_WRONG_PASSPHRASE) error = NULL; else if (!error) { if (ssh2key == SSH2_WRONG_PASSPHRASE) diff --git a/import.c b/import.c index c43eca40..d1ab7511 100644 --- a/import.c +++ b/import.c @@ -582,6 +582,7 @@ struct ssh2_userkey *openssh_read(const Filename *filename, char *passphrase) if (ret < 0 || id != 2 || key->keyblob+key->keyblob_len-p < len) { errmsg = "ASN.1 decoding failure"; + retval = SSH2_WRONG_PASSPHRASE; goto error; } @@ -1323,7 +1324,7 @@ struct ssh2_userkey *sshcom_read(const Filename *filename, char *passphrase) * Strip away the containing string to get to the real meat. */ len = GET_32BIT(ciphertext); - if (len > cipherlen-4) { + if (len < 0 || len > cipherlen-4) { errmsg = "containing string was ill-formed"; goto error; } -- 2.11.0