diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | auth-krb5.c | 4 | ||||
-rw-r--r-- | auth1.c | 4 | ||||
-rw-r--r-- | hostfile.h | 12 | ||||
-rw-r--r-- | monitor_wrap.c | 4 | ||||
-rw-r--r-- | sftp-client.c | 14 | ||||
-rw-r--r-- | sftp-int.c | 28 | ||||
-rw-r--r-- | ssh-add.c | 4 | ||||
-rw-r--r-- | ssh-rsa.c | 4 | ||||
-rw-r--r-- | sshconnect.c | 10 |
10 files changed, 47 insertions, 43 deletions
@@ -16,6 +16,10 @@ | |||
16 | - markus@cvs.openbsd.org 2002/11/21 22:45:31 | 16 | - markus@cvs.openbsd.org 2002/11/21 22:45:31 |
17 | [cipher.c kex.c packet.c sshconnect.c sshconnect2.c] | 17 | [cipher.c kex.c packet.c sshconnect.c sshconnect2.c] |
18 | debug->debug2, unify debug messages | 18 | debug->debug2, unify debug messages |
19 | - deraadt@cvs.openbsd.org 2002/11/21 23:03:51 | ||
20 | [auth-krb5.c auth1.c hostfile.h monitor_wrap.c sftp-client.c sftp-int.c ssh-add.c ssh-rsa.c | ||
21 | sshconnect.c] | ||
22 | KNF | ||
19 | 23 | ||
20 | 20021205 | 24 | 20021205 |
21 | - (djm) PERL-free fixpaths from stuge-openssh-unix-dev@cdy.org | 25 | - (djm) PERL-free fixpaths from stuge-openssh-unix-dev@cdy.org |
@@ -851,4 +855,4 @@ | |||
851 | save auth method before monitor_reset_key_state(); bugzilla bug #284; | 855 | save auth method before monitor_reset_key_state(); bugzilla bug #284; |
852 | ok provos@ | 856 | ok provos@ |
853 | 857 | ||
854 | $Id: ChangeLog,v 1.2519 2002/12/23 02:04:22 mouring Exp $ | 858 | $Id: ChangeLog,v 1.2520 2002/12/23 02:06:19 mouring Exp $ |
diff --git a/auth-krb5.c b/auth-krb5.c index 512f70b78..e3e2d9751 100644 --- a/auth-krb5.c +++ b/auth-krb5.c | |||
@@ -28,7 +28,7 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include "includes.h" | 30 | #include "includes.h" |
31 | RCSID("$OpenBSD: auth-krb5.c,v 1.9 2002/09/09 06:48:06 itojun Exp $"); | 31 | RCSID("$OpenBSD: auth-krb5.c,v 1.10 2002/11/21 23:03:51 deraadt Exp $"); |
32 | 32 | ||
33 | #include "ssh.h" | 33 | #include "ssh.h" |
34 | #include "ssh1.h" | 34 | #include "ssh1.h" |
@@ -107,7 +107,7 @@ auth_krb5(Authctxt *authctxt, krb5_data *auth, char **client, krb5_data *reply) | |||
107 | if (problem) | 107 | if (problem) |
108 | goto err; | 108 | goto err; |
109 | 109 | ||
110 | problem = krb5_sname_to_principal(authctxt->krb5_ctx, NULL, NULL , | 110 | problem = krb5_sname_to_principal(authctxt->krb5_ctx, NULL, NULL, |
111 | KRB5_NT_SRV_HST, &server); | 111 | KRB5_NT_SRV_HST, &server); |
112 | if (problem) | 112 | if (problem) |
113 | goto err; | 113 | goto err; |
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "includes.h" | 12 | #include "includes.h" |
13 | RCSID("$OpenBSD: auth1.c,v 1.44 2002/09/26 11:38:43 markus Exp $"); | 13 | RCSID("$OpenBSD: auth1.c,v 1.45 2002/11/21 23:03:51 deraadt Exp $"); |
14 | 14 | ||
15 | #include "xmalloc.h" | 15 | #include "xmalloc.h" |
16 | #include "rsa.h" | 16 | #include "rsa.h" |
@@ -150,7 +150,7 @@ do_authloop(Authctxt *authctxt) | |||
150 | snprintf(info, sizeof(info), | 150 | snprintf(info, sizeof(info), |
151 | " tktuser %.100s", | 151 | " tktuser %.100s", |
152 | client_user); | 152 | client_user); |
153 | 153 | ||
154 | /* Send response to client */ | 154 | /* Send response to client */ |
155 | packet_start( | 155 | packet_start( |
156 | SSH_SMSG_AUTH_KERBEROS_RESPONSE); | 156 | SSH_SMSG_AUTH_KERBEROS_RESPONSE); |
diff --git a/hostfile.h b/hostfile.h index 1df7a22f2..e3d116581 100644 --- a/hostfile.h +++ b/hostfile.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: hostfile.h,v 1.12 2002/09/08 20:24:08 markus Exp $ */ | 1 | /* $OpenBSD: hostfile.h,v 1.13 2002/11/21 23:03:51 deraadt Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -19,10 +19,10 @@ typedef enum { | |||
19 | } HostStatus; | 19 | } HostStatus; |
20 | 20 | ||
21 | int hostfile_read_key(char **, u_int *, Key *); | 21 | int hostfile_read_key(char **, u_int *, Key *); |
22 | HostStatus | 22 | HostStatus check_host_in_hostfile(const char *, const char *, |
23 | check_host_in_hostfile(const char *, const char *, Key *, Key *, int *); | 23 | Key *, Key *, int *); |
24 | int add_host_to_hostfile(const char *, const char *, Key *); | 24 | int add_host_to_hostfile(const char *, const char *, Key *); |
25 | int | 25 | int lookup_key_in_hostfile_by_type(const char *, const char *, |
26 | lookup_key_in_hostfile_by_type(const char *, const char *, int , Key *, int *); | 26 | int, Key *, int *); |
27 | 27 | ||
28 | #endif | 28 | #endif |
diff --git a/monitor_wrap.c b/monitor_wrap.c index 4c53bfd13..b75f9dfc7 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -25,7 +25,7 @@ | |||
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "includes.h" | 27 | #include "includes.h" |
28 | RCSID("$OpenBSD: monitor_wrap.c,v 1.19 2002/09/26 11:38:43 markus Exp $"); | 28 | RCSID("$OpenBSD: monitor_wrap.c,v 1.20 2002/11/21 23:03:51 deraadt Exp $"); |
29 | 29 | ||
30 | #include <openssl/bn.h> | 30 | #include <openssl/bn.h> |
31 | #include <openssl/dh.h> | 31 | #include <openssl/dh.h> |
@@ -969,7 +969,7 @@ mm_auth_krb4(Authctxt *authctxt, void *_auth, char **client, void *_reply) | |||
969 | xfree(p); | 969 | xfree(p); |
970 | } | 970 | } |
971 | buffer_free(&m); | 971 | buffer_free(&m); |
972 | return (success); | 972 | return (success); |
973 | } | 973 | } |
974 | #endif | 974 | #endif |
975 | 975 | ||
diff --git a/sftp-client.c b/sftp-client.c index 30bef8936..df9838648 100644 --- a/sftp-client.c +++ b/sftp-client.c | |||
@@ -28,7 +28,7 @@ | |||
28 | /* XXX: copy between two remote sites */ | 28 | /* XXX: copy between two remote sites */ |
29 | 29 | ||
30 | #include "includes.h" | 30 | #include "includes.h" |
31 | RCSID("$OpenBSD: sftp-client.c,v 1.36 2002/11/05 20:10:37 markus Exp $"); | 31 | RCSID("$OpenBSD: sftp-client.c,v 1.37 2002/11/21 23:03:51 deraadt Exp $"); |
32 | 32 | ||
33 | #include "openbsd-compat/sys-queue.h" | 33 | #include "openbsd-compat/sys-queue.h" |
34 | 34 | ||
@@ -857,9 +857,9 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path, | |||
857 | (unsigned long long)req->offset + len - 1); | 857 | (unsigned long long)req->offset + len - 1); |
858 | if (len > req->len) | 858 | if (len > req->len) |
859 | fatal("Received more data than asked for " | 859 | fatal("Received more data than asked for " |
860 | "%u > %u", len, req->len); | 860 | "%u > %u", len, req->len); |
861 | if ((lseek(local_fd, req->offset, SEEK_SET) == -1 || | 861 | if ((lseek(local_fd, req->offset, SEEK_SET) == -1 || |
862 | atomicio(write, local_fd, data, len) != len) && | 862 | atomicio(write, local_fd, data, len) != len) && |
863 | !write_error) { | 863 | !write_error) { |
864 | write_errno = errno; | 864 | write_errno = errno; |
865 | write_error = 1; | 865 | write_error = 1; |
@@ -930,7 +930,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path, | |||
930 | if (pflag && chmod(local_path, mode) == -1) | 930 | if (pflag && chmod(local_path, mode) == -1) |
931 | #endif /* HAVE_FCHMOD */ | 931 | #endif /* HAVE_FCHMOD */ |
932 | error("Couldn't set mode on \"%s\": %s", local_path, | 932 | error("Couldn't set mode on \"%s\": %s", local_path, |
933 | strerror(errno)); | 933 | strerror(errno)); |
934 | if (pflag && (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME)) { | 934 | if (pflag && (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME)) { |
935 | struct timeval tv[2]; | 935 | struct timeval tv[2]; |
936 | tv[0].tv_sec = a->atime; | 936 | tv[0].tv_sec = a->atime; |
@@ -938,7 +938,7 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path, | |||
938 | tv[0].tv_usec = tv[1].tv_usec = 0; | 938 | tv[0].tv_usec = tv[1].tv_usec = 0; |
939 | if (utimes(local_path, tv) == -1) | 939 | if (utimes(local_path, tv) == -1) |
940 | error("Can't set times on \"%s\": %s", | 940 | error("Can't set times on \"%s\": %s", |
941 | local_path, strerror(errno)); | 941 | local_path, strerror(errno)); |
942 | } | 942 | } |
943 | } | 943 | } |
944 | close(local_fd); | 944 | close(local_fd); |
@@ -1047,7 +1047,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path, | |||
1047 | buffer_put_string(&msg, data, len); | 1047 | buffer_put_string(&msg, data, len); |
1048 | send_msg(conn->fd_out, &msg); | 1048 | send_msg(conn->fd_out, &msg); |
1049 | debug3("Sent message SSH2_FXP_WRITE I:%u O:%llu S:%u", | 1049 | debug3("Sent message SSH2_FXP_WRITE I:%u O:%llu S:%u", |
1050 | id, (unsigned long long)offset, len); | 1050 | id, (unsigned long long)offset, len); |
1051 | } else if (TAILQ_FIRST(&acks) == NULL) | 1051 | } else if (TAILQ_FIRST(&acks) == NULL) |
1052 | break; | 1052 | break; |
1053 | 1053 | ||
@@ -1081,7 +1081,7 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path, | |||
1081 | 1081 | ||
1082 | if (status != SSH2_FX_OK) { | 1082 | if (status != SSH2_FX_OK) { |
1083 | error("Couldn't write to remote file \"%s\": %s", | 1083 | error("Couldn't write to remote file \"%s\": %s", |
1084 | remote_path, fx2txt(status)); | 1084 | remote_path, fx2txt(status)); |
1085 | do_close(conn, handle, handle_len); | 1085 | do_close(conn, handle, handle_len); |
1086 | close(local_fd); | 1086 | close(local_fd); |
1087 | goto done; | 1087 | goto done; |
diff --git a/sftp-int.c b/sftp-int.c index 6a2012910..04b67c969 100644 --- a/sftp-int.c +++ b/sftp-int.c | |||
@@ -25,7 +25,7 @@ | |||
25 | /* XXX: recursive operations */ | 25 | /* XXX: recursive operations */ |
26 | 26 | ||
27 | #include "includes.h" | 27 | #include "includes.h" |
28 | RCSID("$OpenBSD: sftp-int.c,v 1.49 2002/09/12 00:13:06 djm Exp $"); | 28 | RCSID("$OpenBSD: sftp-int.c,v 1.50 2002/11/21 23:03:51 deraadt Exp $"); |
29 | 29 | ||
30 | #include "buffer.h" | 30 | #include "buffer.h" |
31 | #include "xmalloc.h" | 31 | #include "xmalloc.h" |
@@ -550,7 +550,7 @@ sdirent_comp(const void *aa, const void *bb) | |||
550 | SFTP_DIRENT *a = *(SFTP_DIRENT **)aa; | 550 | SFTP_DIRENT *a = *(SFTP_DIRENT **)aa; |
551 | SFTP_DIRENT *b = *(SFTP_DIRENT **)bb; | 551 | SFTP_DIRENT *b = *(SFTP_DIRENT **)bb; |
552 | 552 | ||
553 | return (strcmp(a->filename, b->filename)); | 553 | return (strcmp(a->filename, b->filename)); |
554 | } | 554 | } |
555 | 555 | ||
556 | /* sftp ls.1 replacement for directories */ | 556 | /* sftp ls.1 replacement for directories */ |
@@ -563,7 +563,7 @@ do_ls_dir(struct sftp_conn *conn, char *path, char *strip_path, int lflag) | |||
563 | if ((n = do_readdir(conn, path, &d)) != 0) | 563 | if ((n = do_readdir(conn, path, &d)) != 0) |
564 | return (n); | 564 | return (n); |
565 | 565 | ||
566 | /* Count entries for sort */ | 566 | /* Count entries for sort */ |
567 | for (n = 0; d[n] != NULL; n++) | 567 | for (n = 0; d[n] != NULL; n++) |
568 | ; | 568 | ; |
569 | 569 | ||
@@ -571,7 +571,7 @@ do_ls_dir(struct sftp_conn *conn, char *path, char *strip_path, int lflag) | |||
571 | 571 | ||
572 | for (n = 0; d[n] != NULL; n++) { | 572 | for (n = 0; d[n] != NULL; n++) { |
573 | char *tmp, *fname; | 573 | char *tmp, *fname; |
574 | 574 | ||
575 | tmp = path_append(path, d[n]->filename); | 575 | tmp = path_append(path, d[n]->filename); |
576 | fname = path_strip(tmp, strip_path); | 576 | fname = path_strip(tmp, strip_path); |
577 | xfree(tmp); | 577 | xfree(tmp); |
@@ -589,7 +589,7 @@ do_ls_dir(struct sftp_conn *conn, char *path, char *strip_path, int lflag) | |||
589 | /* XXX - multicolumn display would be nice here */ | 589 | /* XXX - multicolumn display would be nice here */ |
590 | printf("%s\n", fname); | 590 | printf("%s\n", fname); |
591 | } | 591 | } |
592 | 592 | ||
593 | xfree(fname); | 593 | xfree(fname); |
594 | } | 594 | } |
595 | 595 | ||
@@ -599,7 +599,7 @@ do_ls_dir(struct sftp_conn *conn, char *path, char *strip_path, int lflag) | |||
599 | 599 | ||
600 | /* sftp ls.1 replacement which handles path globs */ | 600 | /* sftp ls.1 replacement which handles path globs */ |
601 | static int | 601 | static int |
602 | do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path, | 602 | do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path, |
603 | int lflag) | 603 | int lflag) |
604 | { | 604 | { |
605 | glob_t g; | 605 | glob_t g; |
@@ -609,23 +609,23 @@ do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path, | |||
609 | 609 | ||
610 | memset(&g, 0, sizeof(g)); | 610 | memset(&g, 0, sizeof(g)); |
611 | 611 | ||
612 | if (remote_glob(conn, path, GLOB_MARK|GLOB_NOCHECK|GLOB_BRACE, | 612 | if (remote_glob(conn, path, GLOB_MARK|GLOB_NOCHECK|GLOB_BRACE, |
613 | NULL, &g)) { | 613 | NULL, &g)) { |
614 | error("Can't ls: \"%s\" not found", path); | 614 | error("Can't ls: \"%s\" not found", path); |
615 | return (-1); | 615 | return (-1); |
616 | } | 616 | } |
617 | 617 | ||
618 | /* | 618 | /* |
619 | * If the glob returns a single match, which is the same as the | 619 | * If the glob returns a single match, which is the same as the |
620 | * input glob, and it is a directory, then just list its contents | 620 | * input glob, and it is a directory, then just list its contents |
621 | */ | 621 | */ |
622 | if (g.gl_pathc == 1 && | 622 | if (g.gl_pathc == 1 && |
623 | strncmp(path, g.gl_pathv[0], strlen(g.gl_pathv[0]) - 1) == 0) { | 623 | strncmp(path, g.gl_pathv[0], strlen(g.gl_pathv[0]) - 1) == 0) { |
624 | if ((a = do_lstat(conn, path, 1)) == NULL) { | 624 | if ((a = do_lstat(conn, path, 1)) == NULL) { |
625 | globfree(&g); | 625 | globfree(&g); |
626 | return (-1); | 626 | return (-1); |
627 | } | 627 | } |
628 | if ((a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) && | 628 | if ((a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) && |
629 | S_ISDIR(a->perm)) { | 629 | S_ISDIR(a->perm)) { |
630 | globfree(&g); | 630 | globfree(&g); |
631 | return (do_ls_dir(conn, path, strip_path, lflag)); | 631 | return (do_ls_dir(conn, path, strip_path, lflag)); |
@@ -640,8 +640,8 @@ do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path, | |||
640 | if (lflag) { | 640 | if (lflag) { |
641 | /* | 641 | /* |
642 | * XXX: this is slow - 1 roundtrip per path | 642 | * XXX: this is slow - 1 roundtrip per path |
643 | * A solution to this is to fork glob() and | 643 | * A solution to this is to fork glob() and |
644 | * build a sftp specific version which keeps the | 644 | * build a sftp specific version which keeps the |
645 | * attribs (which currently get thrown away) | 645 | * attribs (which currently get thrown away) |
646 | * that the server returns as well as the filenames. | 646 | * that the server returns as well as the filenames. |
647 | */ | 647 | */ |
@@ -666,7 +666,7 @@ do_globbed_ls(struct sftp_conn *conn, char *path, char *strip_path, | |||
666 | } | 666 | } |
667 | 667 | ||
668 | static int | 668 | static int |
669 | parse_args(const char **cpp, int *pflag, int *lflag, | 669 | parse_args(const char **cpp, int *pflag, int *lflag, |
670 | unsigned long *n_arg, char **path1, char **path2) | 670 | unsigned long *n_arg, char **path1, char **path2) |
671 | { | 671 | { |
672 | const char *cmd, *cp = *cpp; | 672 | const char *cmd, *cp = *cpp; |
@@ -900,7 +900,7 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd) | |||
900 | do_globbed_ls(conn, *pwd, *pwd, lflag); | 900 | do_globbed_ls(conn, *pwd, *pwd, lflag); |
901 | break; | 901 | break; |
902 | } | 902 | } |
903 | 903 | ||
904 | /* Strip pwd off beginning of non-absolute paths */ | 904 | /* Strip pwd off beginning of non-absolute paths */ |
905 | tmp = NULL; | 905 | tmp = NULL; |
906 | if (*path1 != '/') | 906 | if (*path1 != '/') |
@@ -35,7 +35,7 @@ | |||
35 | */ | 35 | */ |
36 | 36 | ||
37 | #include "includes.h" | 37 | #include "includes.h" |
38 | RCSID("$OpenBSD: ssh-add.c,v 1.63 2002/09/19 15:51:23 markus Exp $"); | 38 | RCSID("$OpenBSD: ssh-add.c,v 1.64 2002/11/21 23:03:51 deraadt Exp $"); |
39 | 39 | ||
40 | #include <openssl/evp.h> | 40 | #include <openssl/evp.h> |
41 | 41 | ||
@@ -169,7 +169,7 @@ add_file(AuthenticationConnection *ac, const char *filename) | |||
169 | fprintf(stderr, "Identity added: %s (%s)\n", filename, comment); | 169 | fprintf(stderr, "Identity added: %s (%s)\n", filename, comment); |
170 | ret = 0; | 170 | ret = 0; |
171 | if (lifetime != 0) | 171 | if (lifetime != 0) |
172 | fprintf(stderr, | 172 | fprintf(stderr, |
173 | "Lifetime set to %d seconds\n", lifetime); | 173 | "Lifetime set to %d seconds\n", lifetime); |
174 | } else if (ssh_add_identity(ac, private, comment)) { | 174 | } else if (ssh_add_identity(ac, private, comment)) { |
175 | fprintf(stderr, "Identity added: %s (%s)\n", filename, comment); | 175 | fprintf(stderr, "Identity added: %s (%s)\n", filename, comment); |
@@ -23,7 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: ssh-rsa.c,v 1.26 2002/08/27 17:13:56 stevesk Exp $"); | 26 | RCSID("$OpenBSD: ssh-rsa.c,v 1.27 2002/11/21 23:03:51 deraadt Exp $"); |
27 | 27 | ||
28 | #include <openssl/evp.h> | 28 | #include <openssl/evp.h> |
29 | #include <openssl/err.h> | 29 | #include <openssl/err.h> |
@@ -37,7 +37,7 @@ RCSID("$OpenBSD: ssh-rsa.c,v 1.26 2002/08/27 17:13:56 stevesk Exp $"); | |||
37 | #include "compat.h" | 37 | #include "compat.h" |
38 | #include "ssh.h" | 38 | #include "ssh.h" |
39 | 39 | ||
40 | static int openssh_RSA_verify(int, u_char *, u_int, u_char *, u_int , RSA *); | 40 | static int openssh_RSA_verify(int, u_char *, u_int, u_char *, u_int, RSA *); |
41 | 41 | ||
42 | /* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ | 42 | /* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ |
43 | int | 43 | int |
diff --git a/sshconnect.c b/sshconnect.c index f99fe0257..dae25969a 100644 --- a/sshconnect.c +++ b/sshconnect.c | |||
@@ -13,7 +13,7 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include "includes.h" | 15 | #include "includes.h" |
16 | RCSID("$OpenBSD: sshconnect.c,v 1.136 2002/11/21 22:45:31 markus Exp $"); | 16 | RCSID("$OpenBSD: sshconnect.c,v 1.137 2002/11/21 23:03:51 deraadt Exp $"); |
17 | 17 | ||
18 | #include <openssl/bn.h> | 18 | #include <openssl/bn.h> |
19 | 19 | ||
@@ -649,10 +649,10 @@ check_host_key(char *host, struct sockaddr *hostaddr, Key *host_key, | |||
649 | "%s key fingerprint is %s.\n" | 649 | "%s key fingerprint is %s.\n" |
650 | "Are you sure you want to continue connecting " | 650 | "Are you sure you want to continue connecting " |
651 | "(yes/no)? ", | 651 | "(yes/no)? ", |
652 | host, ip, | 652 | host, ip, |
653 | has_keys ? ",\nbut keys of different type are already " | 653 | has_keys ? ",\nbut keys of different type are already " |
654 | "known for this host." : ".", | 654 | "known for this host." : ".", |
655 | type, fp); | 655 | type, fp); |
656 | xfree(fp); | 656 | xfree(fp); |
657 | if (!confirm(msg)) | 657 | if (!confirm(msg)) |
658 | goto fail; | 658 | goto fail; |