summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorKevin Steves <stevesk@cvs.openbsd.org>2002-02-16 20:40:09 +0000
committerKevin Steves <stevesk@cvs.openbsd.org>2002-02-16 20:40:09 +0000
commitc707cb295fc3cac8d8feb343e949e0dcf71b8476 (patch)
treeaa90ff8e582e0fcee0d38a37f4d08f91fa222d13 /usr.bin
parent494c6e0846ecee056b25001fcd61ed34e3284b0c (diff)
default to rsa keyfile path for non key generation operations where
keyfile not specified. fixes core dump in those cases. ok markus@
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/ssh/ssh-keygen.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/usr.bin/ssh/ssh-keygen.c b/usr.bin/ssh/ssh-keygen.c
index 22085a1887b..c70d06bda57 100644
--- a/usr.bin/ssh/ssh-keygen.c
+++ b/usr.bin/ssh/ssh-keygen.c
@@ -12,7 +12,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh-keygen.c,v 1.91 2002/01/18 18:14:17 stevesk Exp $");
+RCSID("$OpenBSD: ssh-keygen.c,v 1.92 2002/02/16 20:40:08 stevesk Exp $");
#include <openssl/evp.h>
#include <openssl/pem.h>
@@ -86,21 +86,25 @@ ask_filename(struct passwd *pw, const char *prompt)
char buf[1024];
char *name = NULL;
- switch (key_type_from_name(key_type_name)) {
- case KEY_RSA1:
- name = _PATH_SSH_CLIENT_IDENTITY;
- break;
- case KEY_DSA:
- name = _PATH_SSH_CLIENT_ID_DSA;
- break;
- case KEY_RSA:
+ if (key_type_name == NULL)
name = _PATH_SSH_CLIENT_ID_RSA;
- break;
- default:
- fprintf(stderr, "bad key type");
- exit(1);
- break;
- }
+ else
+ switch (key_type_from_name(key_type_name)) {
+ case KEY_RSA1:
+ name = _PATH_SSH_CLIENT_IDENTITY;
+ break;
+ case KEY_DSA:
+ name = _PATH_SSH_CLIENT_ID_DSA;
+ break;
+ case KEY_RSA:
+ name = _PATH_SSH_CLIENT_ID_RSA;
+ break;
+ default:
+ fprintf(stderr, "bad key type");
+ exit(1);
+ break;
+ }
+
snprintf(identity_file, sizeof(identity_file), "%s/%s", pw->pw_dir, name);
fprintf(stderr, "%s (%s): ", prompt, identity_file);
fflush(stderr);