From 31d6765aca2057b513b8a57b9f05c4c1b2aae79f Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 15 Mar 2001 11:38:02 +0000 Subject: [PATCH] Bit more robustness when talking to Pageant [originally from svn r1000] --- ssh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ssh.c b/ssh.c index 795dc4f4..db6f90cb 100644 --- a/ssh.c +++ b/ssh.c @@ -1608,7 +1608,8 @@ static int do_ssh1_login(unsigned char *in, int inlen, int ispkt) request[4] = SSH1_AGENTC_REQUEST_RSA_IDENTITIES; agent_query(request, 5, &r, &responselen); response = (unsigned char *)r; - if (response) { + if (response && responselen >= 5 && + response[4] == SSH1_AGENT_RSA_IDENTITIES_ANSWER) { p = response + 5; nkeys = GET_32BIT(p); p += 4; { char buf[64]; sprintf(buf, "Pageant has %d SSH1 keys", nkeys); @@ -3035,7 +3036,8 @@ static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt) request[4] = SSH2_AGENTC_REQUEST_IDENTITIES; agent_query(request, 5, &r, &responselen); response = (unsigned char *)r; - if (response) { + if (response && responselen >= 5 && + response[4] == SSH2_AGENT_IDENTITIES_ANSWER) { p = response + 5; nkeys = GET_32BIT(p); p += 4; { char buf[64]; sprintf(buf, "Pageant has %d SSH2 keys", nkeys);