diff options
Diffstat (limited to 'sshconnect1.c')
-rw-r--r-- | sshconnect1.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sshconnect1.c b/sshconnect1.c index 016abbce5..bfc523bde 100644 --- a/sshconnect1.c +++ b/sshconnect1.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshconnect1.c,v 1.77 2015/01/14 20:05:27 djm Exp $ */ | 1 | /* $OpenBSD: sshconnect1.c,v 1.78 2015/11/15 22:26:49 jcs Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -221,7 +221,7 @@ try_rsa_authentication(int idx) | |||
221 | { | 221 | { |
222 | BIGNUM *challenge; | 222 | BIGNUM *challenge; |
223 | Key *public, *private; | 223 | Key *public, *private; |
224 | char buf[300], *passphrase, *comment, *authfile; | 224 | char buf[300], *passphrase = NULL, *comment, *authfile; |
225 | int i, perm_ok = 1, type, quit; | 225 | int i, perm_ok = 1, type, quit; |
226 | 226 | ||
227 | public = options.identity_keys[idx]; | 227 | public = options.identity_keys[idx]; |
@@ -283,13 +283,20 @@ try_rsa_authentication(int idx) | |||
283 | debug2("no passphrase given, try next key"); | 283 | debug2("no passphrase given, try next key"); |
284 | quit = 1; | 284 | quit = 1; |
285 | } | 285 | } |
286 | explicit_bzero(passphrase, strlen(passphrase)); | ||
287 | free(passphrase); | ||
288 | if (private != NULL || quit) | 286 | if (private != NULL || quit) |
289 | break; | 287 | break; |
290 | debug2("bad passphrase given, try again..."); | 288 | debug2("bad passphrase given, try again..."); |
291 | } | 289 | } |
292 | } | 290 | } |
291 | |||
292 | if (private != NULL) | ||
293 | maybe_add_key_to_agent(authfile, private, comment, passphrase); | ||
294 | |||
295 | if (passphrase != NULL) { | ||
296 | explicit_bzero(passphrase, strlen(passphrase)); | ||
297 | free(passphrase); | ||
298 | } | ||
299 | |||
293 | /* We no longer need the comment. */ | 300 | /* We no longer need the comment. */ |
294 | free(comment); | 301 | free(comment); |
295 | 302 | ||