From 4f7a64a64fb5de0f9642074915dd39bd7167fbd4 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Sat, 10 Feb 2001 22:50:09 +0000 Subject: - deraadt@cvs.openbsd.org 2001/02/08 14:39:36 [readconf.c] snprintf --- ChangeLog | 5 ++++- readconf.c | 18 +++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 136feadb4..224909bac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -55,6 +55,9 @@ - markus@cvs.openbsd.org 2001/02/06 22:43:02 [clientloop.h] remove confusing callback code + - deraadt@cvs.openbsd.org 2001/02/08 14:39:36 + [readconf.c] + snprintf - (bal) fixed sftp-client.c. Return 'status' instead of '0' (from the OpenBSD tree) - (bal) Synced ssh.1 and sshd.8 w/ OpenBSD @@ -3841,4 +3844,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.727 2001/02/10 22:44:12 mouring Exp $ +$Id: ChangeLog,v 1.728 2001/02/10 22:50:09 mouring Exp $ diff --git a/readconf.c b/readconf.c index e3a1dd742..f62905c29 100644 --- a/readconf.c +++ b/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" @@ -717,6 +717,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) @@ -783,16 +785,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) -- cgit v1.2.3