The following patch fixes several printf-style format string bugs.
Note that the 'eeprom' program is only available on the sparc platform.

Apply by doing:
       cd /usr/src
       patch -p0 < 028_format_strings.patch

The rebuild the affected programs:
       cd usr.bin/fstat
       make depend && make && make install

       cd ../passwd
       make depend && make && make install

       cd ../top
       make depend && make && make install

       cd ../su
       make depend && make && make install

       cd ../ssh
       make depend && make && make install

       # sparc only
       cd ../../usr.sbin/eeprom
       make depend && make && make install

Index: usr.bin/fstat/fstat.c
===================================================================
RCS file: /cvs/src/usr.bin/fstat/fstat.c,v
retrieving revision 1.26
diff -u -r1.26 fstat.c
--- usr.bin/fstat/fstat.c       2000/01/17 16:26:19     1.26
+++ usr.bin/fstat/fstat.c       2000/10/09 14:51:06
@@ -1018,7 +1018,7 @@
       DEVS *cur;

       if (stat(filename, &statbuf)) {
-               warn(filename);
+               warn("%s", filename);
               return(0);
       }
       if ((cur = malloc(sizeof(DEVS))) == NULL)
Index: usr.bin/passwd/yp_passwd.c
===================================================================
RCS file: /cvs/src/usr.bin/passwd/yp_passwd.c,v
retrieving revision 1.12
diff -u -r1.12 yp_passwd.c
--- usr.bin/passwd/yp_passwd.c  1998/07/13 02:15:01     1.12
+++ usr.bin/passwd/yp_passwd.c  2000/10/09 14:51:06
@@ -72,7 +72,7 @@
       int err, eval;
{
       if(err)
-               warn(name);
+               warn("%s", name);

       warnx("YP passwd database unchanged.");
       exit(eval);
Index: usr.bin/su/su.c
===================================================================
RCS file: /cvs/src/usr.bin/su/su.c,v
retrieving revision 1.31
diff -u -r1.31 su.c
--- usr.bin/su/su.c     1998/03/25 21:27:27     1.31
+++ usr.bin/su/su.c     2000/10/09 14:51:06
@@ -300,7 +300,7 @@
       (void)setpriority(PRIO_PROCESS, 0, prio);

       execv(shell, np);
-       err(1, shell);
+       err(1, "%s", shell);
}

int
Index: usr.sbin/eeprom/eehandlers.c
===================================================================
RCS file: /cvs/src/usr.sbin/eeprom/eehandlers.c,v
retrieving revision 1.5
diff -u -r1.5 eehandlers.c
--- usr.sbin/eeprom/eehandlers.c        1996/08/31 12:56:06     1.5
+++ usr.sbin/eeprom/eehandlers.c        2000/10/09 14:51:06
@@ -79,14 +79,14 @@
}

#define FAILEDREAD(kt) {                                               \
-       warnx(err_str);                                                 \
+       warnx("%s", err_str);                                           \
       warnx("failed to read field `%s'", (kt)->kt_keyword);           \
       ++eval;                                                         \
       return;                                                         \
}

#define FAILEDWRITE(kt) {                                              \
-       warnx(err_str);                                                 \
+       warnx("%s", err_str);                                           \
       warnx("failed to update field `%s'", (kt)->kt_keyword);         \
       ++eval;                                                         \
       return;                                                         \
Index: usr.sbin/eeprom/main.c
===================================================================
RCS file: /cvs/src/usr.sbin/eeprom/main.c,v
retrieving revision 1.5
diff -u -r1.5 main.c
--- usr.sbin/eeprom/main.c      1998/07/08 22:13:26     1.5
+++ usr.sbin/eeprom/main.c      2000/10/09 14:51:06
@@ -264,7 +264,7 @@
                * the generic op_handler.
                */
               if ((cp = op_handler(keyword, arg)) != NULL)
-                       warnx(cp);
+                       warnx("%s", cp);
               return;
       } else
#endif /* __sparc__ */
Index: usr.bin/top/top.c
===================================================================
RCS file: /cvs/src/usr.bin/top/top.c,v
retrieving revision 1.3
diff -u -r1.3 top.c
--- usr.bin/top/top.c   1999/05/23 17:19:21     1.3
+++ usr.bin/top/top.c   2000/10/09 14:51:06
@@ -761,7 +761,7 @@
                               {
                                   if ((errmsg = kill_procs(tempbuf2)) != NULL)
                                   {
-                                       new_message(MT_standout, errmsg);
+                                       new_message(MT_standout, "%s", errmsg);
                                       putchar('\r');
                                       no_command = Yes;
                                   }
@@ -778,7 +778,7 @@
                               {
                                   if ((errmsg = renice_procs(tempbuf2)) != NULL)
                                   {
-                                       new_message(MT_standout, errmsg);
+                                       new_message(MT_standout, "%s", errmsg);
                                       putchar('\r');
                                       no_command = Yes;
                                   }
Index: usr.bin/ssh/auth-rsa.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/auth-rsa.c,v
retrieving revision 1.23
diff -u -r1.23 auth-rsa.c
--- usr.bin/ssh/auth-rsa.c      2000/04/29 18:11:51     1.23
+++ usr.bin/ssh/auth-rsa.c      2000/10/09 14:51:06
@@ -186,8 +186,8 @@
               }
               if (fail) {
                       fclose(f);
-                       log(buf);
-                       packet_send_debug(buf);
+                       log("%s",buf);
+                       packet_send_debug("%s",buf);
                       restore_uid();
                       return 0;
               }
Index: usr.bin/ssh/auth2.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/auth2.c,v
retrieving revision 1.8
diff -u -r1.8 auth2.c
--- usr.bin/ssh/auth2.c 2000/05/08 17:42:24     1.8
+++ usr.bin/ssh/auth2.c 2000/10/09 14:51:06
@@ -433,8 +433,8 @@
                       }
               }
               if (fail) {
-                       log(buf);
                       fclose(f);
+                       log("%s",buf);
                       restore_uid();
                       return 0;
               }
Index: usr.bin/ssh/ssh-keygen.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/ssh-keygen.c,v
retrieving revision 1.25
diff -u -r1.25 ssh-keygen.c
--- usr.bin/ssh/ssh-keygen.c    2000/05/08 18:23:07     1.25
+++ usr.bin/ssh/ssh-keygen.c    2000/10/09 14:51:06
@@ -123,13 +123,13 @@
               exit(1);
       }
       dsa_make_key_blob(k, &blob, &len);
-       fprintf(stdout, SSH_COM_MAGIC_BEGIN "\n");
+       fprintf(stdout, "%s\n", SSH_COM_MAGIC_BEGIN);
       fprintf(stdout,
           "Comment: \"%d-bit DSA, converted from openssh by %s@%s\"\n",
           BN_num_bits(k->dsa->p),
           pw->pw_name, hostname);
       dump_base64(stdout, blob, len);
-       fprintf(stdout, SSH_COM_MAGIC_END "\n");
+       fprintf(stdout, "%s\n", SSH_COM_MAGIC_END);
       key_free(k);
       xfree(blob);
       exit(0);