- deraadt@cvs.openbsd.org 2001/02/08 14:39:36
     [readconf.c]
     snprintf
diff --git a/ChangeLog b/ChangeLog
index 136fead..224909b 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 e3a1dd7..f62905c 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 @@
 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 @@
 		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)