--- sshconnect.c.orig	Wed Jul  8 20:40:38 1998
+++ sshconnect.c	Tue Nov 10 15:43:45 1998
@@ -282,7 +282,7 @@
 
       /* Child.  Permanently give up superuser privileges. */
       if (setuid(getuid()) < 0)
-	fatal("setuid: %s", strerror(errno));
+	fatal("setuid: %.100s", strerror(errno));
 
       /* Redirect stdin and stdout. */
       close(pin[1]);
@@ -944,7 +944,7 @@
   if (!ssh_context)
     {
       if ((r = krb5_init_context(&ssh_context)))
-	fatal("Kerberos V5: %s while initializing krb5.", error_message(r));
+	fatal("Kerberos V5: %.100s while initializing krb5.", error_message(r));
       krb5_init_ets(ssh_context);
     }
   
@@ -959,14 +959,14 @@
 				   "host", KRB5_NT_SRV_HST,
 				   &creds.server)))
     {
-      debug("Kerberos V5: error while constructing service name: %s.",
+      debug("Kerberos V5: error while constructing service name: %.100s.",
 	    error_message(r));
       goto cleanup;
     }
   if ((r = krb5_cc_get_principal(ssh_context, ccache,
 				 &creds.client)))
     {
-      debug("Kerberos V5: failure on principal (%s).",
+      debug("Kerberos V5: failure on principal (%.100s).",
 	    error_message(r));
       goto cleanup;
     }
@@ -975,7 +975,7 @@
   if ((r = krb5_get_credentials(ssh_context, 0,
 				ccache, &creds, &new_creds)))
     {
-      debug("Kerberos V5: failure on credentials(%s).",
+      debug("Kerberos V5: failure on credentials(%.100s).",
 	    error_message(r));
       goto cleanup;
     }
@@ -987,7 +987,7 @@
     {
       if ((r = krb5_auth_con_init(ssh_context, &auth_context)))
 	{
-	  debug("Kerberos V5: failed to init auth_context (%s)",
+	  debug("Kerberos V5: failed to init auth_context (%.100s)",
 		error_message(r));
 	  goto cleanup;
         }
@@ -998,7 +998,7 @@
   if ((r = krb5_mk_req_extended(ssh_context, &auth_context, ap_opts,
 				0, new_creds, &auth)))
     {
-      debug("Kerberos V5: failed krb5_mk_req_extended (%s)",
+      debug("Kerberos V5: failed krb5_mk_req_extended (%.100s)",
 	    error_message(r));
       goto cleanup;
     }
@@ -1046,7 +1046,7 @@
       
       if (r = krb5_rd_rep(ssh_context, auth_context, &auth, &repl))
 	{
-	  packet_disconnect("Kerberos V5 Authentication failed: %s",
+	  packet_disconnect("Kerberos V5 Authentication failed: %.100s",
 			    error_message(r));
 	  goto cleanup;
 	}
@@ -1090,7 +1090,7 @@
   krb5_data outbuf;
   krb5_error_code r;
   int type;
-  char server_name[128];
+  char server_name[512];
   
   remotehost = (char *) get_canonical_hostname();
   memset(&outbuf, 0 , sizeof(outbuf));
@@ -1100,14 +1100,14 @@
   if (!ssh_context)
     {
       if ((r = krb5_init_context(&ssh_context)))
-	fatal("Kerberos V5: %s while initializing krb5.", error_message(r));
+	fatal("Kerberos V5: %.100s while initializing krb5.", error_message(r));
       krb5_init_ets(ssh_context);
     }
   if (!auth_context)
     {
       if ((r = krb5_auth_con_init(ssh_context, &auth_context)))
 	{
-	  debug("Kerberos V5: failed to init auth_context (%s)",
+	  debug("Kerberos V5: failed to init auth_context (%.100s)",
 		error_message(r));
 	  return 0 ;
         }
@@ -1124,7 +1124,7 @@
     if ((r = krb5_cc_get_principal(ssh_context, ccache,
                                    &client)))
       {
-        debug("Kerberos V5: failure on principal (%s)",
+        debug("Kerberos V5: failure on principal (%.100s)",
 	      error_message(r));
         return 0 ;
       }
@@ -1136,7 +1136,7 @@
        principal and point it to clients realm. This way
        we pass over a TGT of the clients realm. */
     
-    sprintf(server_name,"host/%s@", remotehost);
+    sprintf(server_name,"host/%.100s@", remotehost);
     strncat(server_name,client->realm.data,client->realm.length);
     krb5_parse_name(ssh_context,server_name, &server);
     server->type = KRB5_NT_SRV_HST;
@@ -1145,7 +1145,7 @@
     if ((r = krb5_fwd_tgt_creds(ssh_context, auth_context, 0, client, 
  			        server, ccache, 1, &outbuf)))
       {
-	debug("Kerberos V5 krb5_fwd_tgt_creds failure (%s)",
+	debug("Kerberos V5 krb5_fwd_tgt_creds failure (%.100s)",
 	      error_message(r));
 	krb5_free_principal(ssh_context, client);
         krb5_free_principal(ssh_context, server);
@@ -1416,7 +1416,7 @@
       error("Someone could be eavesdropping on you right now (man-in-the-middle attack)!");
       error("It is also possible that the host key has just been changed.");
       error("Please contact your system administrator.");
-      error("Add correct host key in %s to get rid of this message.", 
+      error("Add correct host key in %.100s to get rid of this message.",
 	    options->user_hostfile);
       
       /* If strict host key checking is in use, the user will have to edit
@@ -1589,7 +1589,7 @@
   if (!ssh_context)
     {
       if ((problem = krb5_init_context(&ssh_context)))
-	fatal("Kerberos V5: %s while initializing krb5.",
+	fatal("Kerberos V5: %.100s while initializing krb5.",
 	      error_message(problem));
       krb5_init_ets(ssh_context);
     }
@@ -1605,7 +1605,7 @@
 	  if ((problem = krb5_cc_get_principal(ssh_context, ccache,
 					       &client)))
 	    {
-	      debug("Kerberos V5: failure on principal (%s).",
+	      debug("Kerberos V5: failure on principal (%.100s).",
                     error_message(problem));
 	    }
 	  else {
--- auth-kerberos.c.orig	Wed Jul  8 20:40:35 1998
+++ auth-kerberos.c	Tue Nov 10 15:50:15 1998
@@ -63,11 +63,11 @@
 	  krb5_auth_con_free(ssh_context, auth_context);
 	  auth_context = 0;
 	}
-      log_msg("Kerberos ticket authentication of user %s failed: %s",
+      log_msg("Kerberos ticket authentication of user %.100s failed: %.100s",
 	      server_user, error_message(problem));
       
-      debug("Kerberos krb5_auth_con_genaddrs (%s).", error_message(problem));
-      packet_send_debug("Kerberos krb5_auth_con_genaddrs: %s",
+      debug("Kerberos krb5_auth_con_genaddrs (%.100s).", error_message(problem));
+      packet_send_debug("Kerberos krb5_auth_con_genaddrs: %.100s",
 			error_message(problem));
       return 0;
     }
@@ -80,11 +80,11 @@
 	  krb5_auth_con_free(ssh_context, auth_context);
 	  auth_context = 0;  
 	}
-      log_msg("Kerberos ticket authentication of user %s failed: %s",
+      log_msg("Kerberos ticket authentication of user %.100s failed: %.100s",
 	      server_user, error_message(problem));
       
-      debug("Kerberos V5 rd_req failed (%s).", error_message(problem));
-      packet_send_debug("Kerberos V5 krb5_rd_req: %s", error_message(problem));
+      debug("Kerberos V5 rd_req failed (%.100s).", error_message(problem));
+      packet_send_debug("Kerberos V5 krb5_rd_req: %.100s", error_message(problem));
       return 0;
     }
   
@@ -93,22 +93,22 @@
   if (problem)
     {
       krb5_free_ticket(ssh_context, ticket);
-      log_msg("Kerberos ticket authentication of user %s failed: %s",
+      log_msg("Kerberos ticket authentication of user %.100s failed: %.100s",
 	      server_user, error_message(problem));
       
-      debug("Kerberos krb5_unparse_name failed (%s).", error_message(problem));
-      packet_send_debug("Kerberos krb5_unparse_name: %s",
+      debug("Kerberos krb5_unparse_name failed (%.100s).", error_message(problem));
+      packet_send_debug("Kerberos krb5_unparse_name: %.100s",
 			error_message(problem));
       return 0;
     }
   if (strncmp(server, "host/", strlen("host/")))
     {
       krb5_free_ticket(ssh_context, ticket);
-      log_msg("Kerberos ticket authentication of user %s failed: invalid service name (%s)",
+      log_msg("Kerberos ticket authentication of user %.100s failed: invalid service name (%.100s)",
 	      server_user, server);
       
-      debug("Kerberos invalid service name (%s).", server);
-      packet_send_debug("Kerberos invalid service name (%s).", server);
+      debug("Kerberos invalid service name (%.100s).", server);
+      packet_send_debug("Kerberos invalid service name (%.100s).", server);
       krb5_xfree(server);
       return 0;
     }
@@ -122,11 +122,11 @@
   
   if (problem)
     {
-      log_msg("Kerberos ticket authentication of user %s failed: %s",
+      log_msg("Kerberos ticket authentication of user %.100s failed: %.100s",
 	      server_user, error_message(problem));
-      debug("Kerberos krb5_copy_principal failed (%s).", 
+      debug("Kerberos krb5_copy_principal failed (%.100s).",
 	    error_message(problem));
-      packet_send_debug("Kerberos krb5_copy_principal: %s", 
+      packet_send_debug("Kerberos krb5_copy_principal: %.100s",
 			error_message(problem));
       return 0;
     }
@@ -135,11 +135,11 @@
   /* Make the reply - so that mutual authentication can be done */
   if ((problem = krb5_mk_rep(ssh_context, auth_context, &reply)))
     {
-      log_msg("Kerberos ticket authentication of user %s failed: %s",
+      log_msg("Kerberos ticket authentication of user %.100s failed: %.100s",
 	      server_user, error_message(problem));
-      debug("Kerberos krb5_mk_rep failed (%s).",
+      debug("Kerberos krb5_mk_rep failed (%.100s).",
 	    error_message(problem));
-      packet_send_debug("Kerberos krb5_mk_rep failed: %s",
+      packet_send_debug("Kerberos krb5_mk_rep failed: %.100s",
 			error_message(problem));
       return 0;
     }
@@ -160,7 +160,7 @@
 {
   krb5_creds **creds;
   krb5_error_code retval;
-  static char ccname[128];
+  static char ccname[512];
   krb5_ccache ccache = NULL;
   struct passwd *pwd;
   extern char *ticket;
@@ -208,9 +208,9 @@
   
   if (retval = krb5_rd_cred(ssh_context, auth_context, krb5data, &creds, NULL))
     {
-      log_msg("Kerberos V5 tgt rejected for user %.100s : %s", server_user,
+      log_msg("Kerberos V5 tgt rejected for user %.100s : %.100s", server_user,
 	      error_message(retval));
-      packet_send_debug("Kerberos V5 tgt rejected for %.100s : %s",
+      packet_send_debug("Kerberos V5 tgt rejected for %.100s : %.100s",
 			server_user,
 			error_message(retval));
       packet_start(SSH_SMSG_FAILURE);
@@ -234,7 +234,7 @@
     goto errout;
   
   ticket = xmalloc(strlen(ccname) + 1);
-  (void) sprintf(ticket, "%s", ccname);
+  (void) sprintf(ticket, "%.100s", ccname);
   
   /* Successful */
   packet_start(SSH_SMSG_SUCCESS);
@@ -244,9 +244,9 @@
   
 errout:
   krb5_free_tgt_creds(ssh_context, creds);
-  log_msg("Kerberos V5 tgt rejected for user %.100s :%s", server_user,
+  log_msg("Kerberos V5 tgt rejected for user %.100s :%.100s", server_user,
 	  error_message(retval));
-  packet_send_debug("Kerberos V5 tgt rejected for %.100s : %s", server_user,
+  packet_send_debug("Kerberos V5 tgt rejected for %.100s : %.100s", server_user,
 		    error_message(retval));
   packet_start(SSH_SMSG_FAILURE);
   packet_send();
