summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/ssh/readconf.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/usr.bin/ssh/readconf.c b/usr.bin/ssh/readconf.c
index 4fc830c9318..889fef4828e 100644
--- a/usr.bin/ssh/readconf.c
+++ b/usr.bin/ssh/readconf.c
@@ -12,7 +12,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: readconf.c,v 1.60 2001/01/28 20:36:16 stevesk Exp $");
+RCSID("$OpenBSD: readconf.c,v 1.61 2001/02/08 14:39:36 deraadt Exp $");
#include "ssh.h"
#include "xmalloc.h"
@@ -715,6 +715,8 @@ initialize_options(Options * options)
void
fill_default_options(Options * options)
{
+ int len;
+
if (options->forward_agent == -1)
options->forward_agent = 0;
if (options->forward_x11 == -1)
@@ -781,16 +783,18 @@ fill_default_options(Options * options)
options->protocol = SSH_PROTO_1|SSH_PROTO_2|SSH_PROTO_1_PREFERRED;
if (options->num_identity_files == 0) {
if (options->protocol & SSH_PROTO_1) {
+ len = 2 + strlen(_PATH_SSH_CLIENT_IDENTITY) + 1;
options->identity_files[options->num_identity_files] =
- xmalloc(2 + strlen(_PATH_SSH_CLIENT_IDENTITY) + 1);
- sprintf(options->identity_files[options->num_identity_files++],
- "~/%.100s", _PATH_SSH_CLIENT_IDENTITY);
+ xmalloc(len);
+ snprintf(options->identity_files[options->num_identity_files++],
+ len, "~/%.100s", _PATH_SSH_CLIENT_IDENTITY);
}
if (options->protocol & SSH_PROTO_2) {
+ len = 2 + strlen(_PATH_SSH_CLIENT_ID_DSA) + 1;
options->identity_files[options->num_identity_files] =
- xmalloc(2 + strlen(_PATH_SSH_CLIENT_ID_DSA) + 1);
- sprintf(options->identity_files[options->num_identity_files++],
- "~/%.100s", _PATH_SSH_CLIENT_ID_DSA);
+ xmalloc(len);
+ snprintf(options->identity_files[options->num_identity_files++],
+ len, "~/%.100s", _PATH_SSH_CLIENT_ID_DSA);
}
}
if (options->escape_char == -1)