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);
