Module Name:    src
Committed By:   christos
Date:           Tue Mar 25 18:35:33 UTC 2014

Modified Files:
        src/sys/arch/ia64/disasm: disasm_format.c
        src/sys/arch/ia64/stand/common: boot.c bootstrap.h commands.c dev_net.c
            fileload.c interp.c ls.c misc.c
        src/sys/arch/ia64/stand/efi/libefi: devicename.c efifs.c
        src/sys/arch/ia64/stand/ia64/efi: main.c
        src/sys/arch/ia64/stand/ia64/ski: devicename.c

Log Message:
kill sprintf


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/ia64/disasm/disasm_format.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/ia64/stand/common/boot.c \
    src/sys/arch/ia64/stand/common/interp.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/ia64/stand/common/bootstrap.h \
    src/sys/arch/ia64/stand/common/dev_net.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/ia64/stand/common/commands.c \
    src/sys/arch/ia64/stand/common/ls.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/ia64/stand/common/fileload.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/ia64/stand/common/misc.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/ia64/stand/efi/libefi/devicename.c \
    src/sys/arch/ia64/stand/efi/libefi/efifs.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/ia64/stand/ia64/efi/main.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/ia64/stand/ia64/ski/devicename.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/ia64/disasm/disasm_format.c
diff -u src/sys/arch/ia64/disasm/disasm_format.c:1.1 src/sys/arch/ia64/disasm/disasm_format.c:1.2
--- src/sys/arch/ia64/disasm/disasm_format.c:1.1	Fri Apr  7 10:21:18 2006
+++ src/sys/arch/ia64/disasm/disasm_format.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: disasm_format.c,v 1.1 2006/04/07 14:21:18 cherry Exp $	*/
+/*	$NetBSD: disasm_format.c,v 1.2 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000-2003 Marcel Moolenaar
@@ -111,21 +111,23 @@ static const char *asm_completers[] = {
 };
 
 void
-asm_completer(const struct asm_cmpltr *c, char *buf)
+asm_completer(const struct asm_cmpltr *c, char *buf, size_t buflen)
 {
-	strcpy(buf, asm_completers[c->c_type]);
+	strlcpy(buf, asm_completers[c->c_type], buflen);
 }
 
 void
-asm_mnemonic(enum asm_op op, char *buf)
+asm_mnemonic(enum asm_op op, char *buf, size_t buflen)
 {
-	strcpy(buf, asm_mnemonics[(op < ASM_OP_INTERNAL_OPCODES) ? op : 0]); 
+	strlcpy(buf, asm_mnemonics[(op < ASM_OP_INTERNAL_OPCODES) ? op : 0],
+	    buflen); 
 }
 
 void
-asm_operand(const struct asm_oper *o, char *buf, uint64_t ip)
+asm_operand(const struct asm_oper *o, char *buf, size_t buflen, uint64_t ip)
 {
 	const char *n;
+	size_t l;
 
 	n = "";
 	switch (o->o_type) {
@@ -159,16 +161,16 @@ asm_operand(const struct asm_oper *o, ch
 		case AR_LC: n = "lc"; break;
 		case AR_EC: n = "ec"; break;
 		default:
-			sprintf(buf, "ar%d", (int)o->o_value);
+			snprintf(buf, buflen, "ar%d", (int)o->o_value);
 			return;
 		}
-		sprintf(buf, "ar.%s", n);
+		snprintf(buf, buflen, "ar.%s", n);
 		return;
 	case ASM_OPER_BREG:
 		if (o->o_value != 0)
-			sprintf(buf, "b%d", (int)o->o_value);
+			snprintf(buf, buflen, "b%d", (int)o->o_value);
 		else
-			strcpy(buf, "rp");
+			strlcpy(buf, "rp", buflen);
 		return;
 	case ASM_OPER_CPUID:
 		n = "cpuid";
@@ -202,22 +204,22 @@ asm_operand(const struct asm_oper *o, ch
 		case CR_LRR0: n = "lrr0"; break;
 		case CR_LRR1: n = "lrr1"; break;
 		default:
-			sprintf(buf, "cr%d", (int)o->o_value);
+			snprintf(buf, buflen, "cr%d", (int)o->o_value);
 			return;
 		}
-		sprintf(buf, "cr.%s", n);
+		snprintf(buf, buflen, "cr.%s", n);
 		return;
 	case ASM_OPER_DBR:
 		n = "dbr";
 		break;
 	case ASM_OPER_DISP:
-		sprintf(buf, "%lx", ip + o->o_value);
+		snprintf(buf, buflen, "%lx", ip + o->o_value);
 		return;
 	case ASM_OPER_DTR:
 		n = "dtr";
 		break;
 	case ASM_OPER_FREG:
-		sprintf(buf, "f%d", (int)o->o_value);
+		snprintf(buf, buflen, "f%d", (int)o->o_value);
 		return;
 	case ASM_OPER_GREG:
 		break;
@@ -225,10 +227,10 @@ asm_operand(const struct asm_oper *o, ch
 		n = "ibr";
 		break;
 	case ASM_OPER_IMM:
-		sprintf(buf, "0x%lx", o->o_value);
+		snprintf(buf, buflen, "0x%lx", o->o_value);
 		return;
 	case ASM_OPER_IP:
-		strcpy(buf, "ip");
+		strlcpy(buf, "ip", buflen);
 		return;
 	case ASM_OPER_ITR:
 		n = "itr";
@@ -249,22 +251,22 @@ asm_operand(const struct asm_oper *o, ch
 		n = "pmd";
 		break;
 	case ASM_OPER_PR:
-		strcpy(buf, "pr");
+		strlcpy(buf, "pr", buflen);
                 return;
 	case ASM_OPER_PR_ROT:
-		strcpy(buf, "pr.rot");
+		strlcpy(buf, "pr.rot", buflen);
 		return;
 	case ASM_OPER_PREG:
-		sprintf(buf, "p%d", (int)o->o_value);
+		snprintf(buf, buflen, "p%d", (int)o->o_value);
 		return;
 	case ASM_OPER_PSR:
-		strcpy(buf, "psr");
+		strlcpy(buf, "psr", buflen);
 		return;
 	case ASM_OPER_PSR_L:
-		strcpy(buf, "psr.l");
+		strlcpy(buf, "psr.l", buflen);
 		return;
 	case ASM_OPER_PSR_UM:
-		strcpy(buf, "psr.um");
+		strlcpy(buf, "psr.um", buflen);
 		return;
 	case ASM_OPER_RR:
 		n = "rr";
@@ -273,16 +275,21 @@ asm_operand(const struct asm_oper *o, ch
 		KASSERT(0);
 		break;
 	}
-	if (n[0] != '\0')
-		buf += sprintf(buf, "%s[", n);
+	if (n[0] != '\0') {
+		l = snprintf(buf, buflen, "%s[", n);
+		buf += l;
+		buflen -= l;
+	}
 	switch ((int)o->o_value) {
-	case 1:	strcpy(buf, "gp"); buf += 2; break;
-	case 12: strcpy(buf, "sp"); buf += 2; break;
-	case 13: strcpy(buf, "tp"); buf += 2; break;
-	default: buf += sprintf(buf, "r%d", (int)o->o_value); break;
+	case 1:	l = strlcpy(buf, "gp", buflen); break;
+	case 12: l = strlcpy(buf, "sp", buflen); break;
+	case 13: l = strlcpy(buf, "tp", buflen); break;
+	default: l += snprintf(buf, buflen, "r%d", (int)o->o_value); break;
 	}
+	buf += l;
+	buflen -= l;
 	if (n[0] != '\0')
-		strcpy(buf, "]");
+		strlcpy(buf, "]", buflen);
 }
 
 void
@@ -313,7 +320,7 @@ asm_print_inst(const struct asm_bundle *
 
 	/* Predicate. */
 	if (i->i_oper[0].o_value != 0) {
-		asm_operand(i->i_oper+0, buf, ip);
+		asm_operand(i->i_oper+0, buf, sizeof(buf), ip);
 		printf("(%s)", buf);
 		w = strlen(buf);
 	} else
@@ -322,12 +329,12 @@ asm_print_inst(const struct asm_bundle *
 		printf(" ");
 
 	/* Mnemonic & completers. */
-	asm_mnemonic(i->i_op, buf);
-	printf(buf);
+	asm_mnemonic(i->i_op, buf, sizeof(buf));
+	printf("%s", buf);
 	w = strlen(buf);
 	n = 0;
 	while (n < i->i_ncmpltrs) {
-		asm_completer(i->i_cmpltr + n, buf);
+		asm_completer(i->i_cmpltr + n, buf, sizeof(buf));
 		printf(buf);
 		w += strlen(buf);
 		n++;
@@ -345,8 +352,8 @@ asm_print_inst(const struct asm_bundle *
 			else
 				printf(", ");
 		}
-		asm_operand(i->i_oper + n, buf, ip);
-		printf(buf);
+		asm_operand(i->i_oper + n, buf, sizeof(buf), ip);
+		printf("%s", buf);
 		n++;
 	}
 	printf("\n");

Index: src/sys/arch/ia64/stand/common/boot.c
diff -u src/sys/arch/ia64/stand/common/boot.c:1.5 src/sys/arch/ia64/stand/common/boot.c:1.6
--- src/sys/arch/ia64/stand/common/boot.c:1.5	Mon Jul 20 00:59:03 2009
+++ src/sys/arch/ia64/stand/common/boot.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: boot.c,v 1.5 2009/07/20 04:59:03 kiyohara Exp $	*/
+/*	$NetBSD: boot.c,v 1.6 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -64,7 +64,8 @@ command_boot(int argc, char *argv[])
 	
 	/* XXX maybe we should discard everything and start again? */
 	if (file_findfile(NULL, NULL) != NULL) {
-	    sprintf(command_errbuf, "can't boot '%s', kernel module already loaded", argv[1]);
+	    command_seterr("can't boot '%s', kernel module already loaded",
+		argv[1]);
 	    return(CMD_ERROR);
 	}
 
@@ -88,7 +89,7 @@ command_boot(int argc, char *argv[])
      * Loaded anything yet?
      */
     if ((fp = file_findfile(NULL, NULL)) == NULL) {
-	command_errmsg = "no bootable kernel";
+	command_seterr("no bootable kernel");
 	return(CMD_ERROR);
     }
 
@@ -107,7 +108,7 @@ command_boot(int argc, char *argv[])
 	return(CMD_ERROR);
 
     /* Call the exec handler from the loader matching the kernel */
-    command_errmsg = strerror(file_formats[fp->f_loader]->l_exec(fp));
+    command_seterr("%s", strerror(file_formats[fp->f_loader]->l_exec(fp));
     return(CMD_ERROR);
 }
 
@@ -131,7 +132,7 @@ command_autoboot(int argc, char *argv[])
     case 2:
 	howlong = strtol(argv[1], &cp, 0);
 	if (*cp != 0) {
-	    sprintf(command_errbuf, "bad delay '%s'", argv[1]);
+	    command_seterr("bad delay '%s'", argv[1]);
 	    return(CMD_ERROR);
 	}
 	/* FALLTHROUGH */
@@ -139,7 +140,7 @@ command_autoboot(int argc, char *argv[])
 	return(autoboot(howlong, prompt));
     }
 	
-    command_errmsg = "too many arguments";
+    command_seterr("too many arguments");
     return(CMD_ERROR);
 }
 
@@ -184,7 +185,7 @@ autoboot(int timeout, char *prompt)
 	loadakernel(0, 0, argv);
 	kernelname = getenv("kernelname");
 	if (kernelname == NULL) {
-	    command_errmsg = "no valid kernel found";
+	    command_seterr("no valid kernel found");
 	    return(CMD_ERROR);
 	}
     }
@@ -294,7 +295,7 @@ getrootmount(char *rootdev)
     if (getenv("vfs.root.mountfrom") != NULL)
 	return(0);
 
-    sprintf(lbuf, "%s/etc/fstab", rootdev);
+    snprintf(lbuf, sizeof(lbuf), "%s/etc/fstab", rootdev);
     if ((fd = open(lbuf, O_RDONLY)) < 0)
 	return(1);
 
@@ -333,7 +334,7 @@ getrootmount(char *rootdev)
 	fstyp = strdup(ep);
 
 	/* build the final result and save it */
-	sprintf(lbuf, "%s:%s", fstyp, dev);
+	snprintf(lbuf, sizeof(lbuf), "%s:%s", fstyp, dev);
 	free(dev);
 	free(fstyp);
 	setenv("vfs.root.mountfrom", lbuf, 0);
Index: src/sys/arch/ia64/stand/common/interp.c
diff -u src/sys/arch/ia64/stand/common/interp.c:1.5 src/sys/arch/ia64/stand/common/interp.c:1.6
--- src/sys/arch/ia64/stand/common/interp.c:1.5	Thu Dec 27 15:21:51 2012
+++ src/sys/arch/ia64/stand/common/interp.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: interp.c,v 1.5 2012/12/27 20:21:51 martin Exp $	*/
+/*	$NetBSD: interp.c,v 1.6 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -73,8 +73,7 @@ perform(int argc, char *argv[])
 	return(CMD_OK);
 
     /* set return defaults; a successful command will override these */
-    command_errmsg = command_errbuf;
-    strcpy(command_errbuf, "no error message");
+    command_seterr("no error message");
     cmd = NULL;
     result = CMD_ERROR;
 
@@ -86,7 +85,7 @@ perform(int argc, char *argv[])
     if (cmd != NULL) {
 	result = (cmd)(argc, argv);
     } else {
-	command_errmsg = "unknown command";
+	command_seterr("unknown command");
     }
     RETURN(result);
 }
@@ -140,7 +139,7 @@ interact(void)
 #else
 	if (!parse(&argc, &argv, input)) {
 	    if (perform(argc, argv))
-		printf("%s: %s\n", argv[0], command_errmsg);
+		printf("%s: %s\n", argv[0], command_geterr());
 	    free(argv);
 	} else {
 	    printf("parse error\n");
@@ -210,7 +209,7 @@ include(const char *filename)
 #endif
 
     if (((fd = open(filename, O_RDONLY)) == -1)) {
-	sprintf(command_errbuf,"can't open '%s': %s\n", filename, strerror(errno));
+	command_seterr("can't open '%s': %s\n", filename, strerror(errno));
 	return(CMD_ERROR);
     }
 
@@ -275,7 +274,8 @@ include(const char *filename)
 #ifdef BOOT_FORTH
 	res = bf_run(sp->text);
 	if (res != VM_OUTOFTEXT) {
-		sprintf(command_errbuf, "Error while including %s, in the line:\n%s", filename, sp->text);
+		command_seterr("Error while including %s, in the line:\n%s",
+		    filename, sp->text);
 		res = CMD_ERROR;
 		break;
 	} else
@@ -291,7 +291,7 @@ include(const char *filename)
 	if (!parse(&argc, &argv, sp->text)) {
 	    if ((argc > 0) && (perform(argc, argv) != 0)) {
 		/* normal command */
-		printf("%s: %s\n", argv[0], command_errmsg);
+		printf("%s: %s\n", argv[0], command_geterr());
 		if (!(sp->flags & SL_IGNOREERR)) {
 		    res=CMD_ERROR;
 		    break;

Index: src/sys/arch/ia64/stand/common/bootstrap.h
diff -u src/sys/arch/ia64/stand/common/bootstrap.h:1.8 src/sys/arch/ia64/stand/common/bootstrap.h:1.9
--- src/sys/arch/ia64/stand/common/bootstrap.h:1.8	Thu Dec 27 15:21:50 2012
+++ src/sys/arch/ia64/stand/common/bootstrap.h	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: bootstrap.h,v 1.8 2012/12/27 20:21:50 martin Exp $	*/
+/*	$NetBSD: bootstrap.h,v 1.9 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -50,10 +50,10 @@ struct devdesc 
 #define	DEVT_CD		3
 };
 
-/* Commands and return values; nonzero return sets command_errmsg != NULL */
 typedef int	(bootblk_cmd_t)(int argc, char *argv[]);
-extern char	*command_errmsg;	
-extern char	command_errbuf[];	/* XXX blah, length */
+int command_seterr(const char *fmt, ...) __printflike(1, 2);
+const char *command_geterr(void);
+
 #define CMD_OK		0
 #define CMD_ERROR	1
 
Index: src/sys/arch/ia64/stand/common/dev_net.c
diff -u src/sys/arch/ia64/stand/common/dev_net.c:1.8 src/sys/arch/ia64/stand/common/dev_net.c:1.9
--- src/sys/arch/ia64/stand/common/dev_net.c:1.8	Sun Jul 17 16:54:42 2011
+++ src/sys/arch/ia64/stand/common/dev_net.c	Tue Mar 25 14:35:32 2014
@@ -1,5 +1,5 @@
 /*	
- * $NetBSD: dev_net.c,v 1.8 2011/07/17 20:54:42 joerg Exp $
+ * $NetBSD: dev_net.c,v 1.9 2014/03/25 18:35:32 christos Exp $
  */
 
 /*-
@@ -279,7 +279,7 @@ net_getparams(int sock)
     printf("net_open: server path: %s\n", rootpath);	    
 
     d = socktodesc(sock);
-    sprintf(temp, "%6D", d->myea, ":");
+    snprintf(temp, sizeof(temp), "%6D", d->myea, ":");
     setenv("boot.netif.ip", inet_ntoa(myip), 1);
     setenv("boot.netif.netmask", intoa(netmask), 1);
     setenv("boot.netif.gateway", inet_ntoa(gateip), 1);

Index: src/sys/arch/ia64/stand/common/commands.c
diff -u src/sys/arch/ia64/stand/common/commands.c:1.3 src/sys/arch/ia64/stand/common/commands.c:1.4
--- src/sys/arch/ia64/stand/common/commands.c:1.3	Mon Jul 20 00:59:03 2009
+++ src/sys/arch/ia64/stand/common/commands.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: commands.c,v 1.3 2009/07/20 04:59:03 kiyohara Exp $	*/
+/*	$NetBSD: commands.c,v 1.4 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -35,8 +35,24 @@
 
 #include "bootstrap.h"
 
-char		*command_errmsg;
-char		command_errbuf[256];	/* XXX should have procedural interface for setting, size limit? */
+static char command_errbuf[256];
+
+int
+command_seterr(const char *fmt, ...)
+{
+	int len;
+	va_list ap;
+	va_start(fmt, ap);
+	len = vsnprintf(command_errbuf, sizeof(command_errbuf), fmt, ap);
+	va_end(ap);
+	return len;
+}
+
+const char *
+command_geterr(void)
+{
+	return command_errbuf;
+}
 
 static int page_file(char *filename);
 
@@ -133,7 +149,7 @@ command_help(int argc, char *argv[]) 
     char	*topic, *subtopic, *t, *s, *d;
 
     /* page the help text from our load path */
-    sprintf(buf, "%s/boot/loader.help", getenv("loaddev"));
+    snprintf(buf, sizeof(buf), "%s/boot/loader.help", getenv("loaddev"));
     if ((hfd = open(buf, O_RDONLY)) < 0) {
 	printf("Verbose help not available, use '?' to list commands\n");
 	return(CMD_OK);
@@ -151,7 +167,7 @@ command_help(int argc, char *argv[]) 
 	topic = strdup("help");
 	break;
     default:
-	command_errmsg = "usage is 'help <topic> [<subtopic>]";
+	command_seterr("usage is 'help <topic> [<subtopic>]");
 	return(CMD_ERROR);
     }
 
@@ -197,7 +213,7 @@ command_help(int argc, char *argv[]) 
     pager_close();
     close(hfd);
     if (!matched) {
-	sprintf(command_errbuf, "no help available for '%s'", topic);
+	command_seterr("no help available for '%s'", topic);
 	free(topic);
 	if (subtopic)
 	    free(subtopic);
@@ -226,7 +242,7 @@ command_commandlist(int argc, char *argv
 	    if (res)
 	    break;
 	if ((cmdp->c_name != NULL) && (cmdp->c_desc != NULL)) {
-	    sprintf(name, "  %s  ", cmdp->c_name);
+	    snprintf(name, sizeof(name), "  %s  ", cmdp->c_name);
 	    pager_output(name);
 	    pager_output(cmdp->c_desc);
 	    res = pager_output("\n");
@@ -267,7 +283,7 @@ command_show(int argc, char *argv[])
 	if ((cp = getenv(argv[1])) != NULL) {
 	    printf("%s\n", cp);
 	} else {
-	    sprintf(command_errbuf, "variable '%s' not found", argv[1]);
+	    command_seterr("variable '%s' not found", argv[1]);
 	    return(CMD_ERROR);
 	}
     }
@@ -281,11 +297,11 @@ command_set(int argc, char *argv[])
     int		err;
     
     if (argc != 2) {
-	command_errmsg = "wrong number of arguments";
+	command_seterr("wrong number of arguments");
 	return(CMD_ERROR);
     } else {
 	if ((err = putenv(argv[1])) != 0) {
-	    command_errmsg = strerror(err);
+	    command_seterr("%s", strerror(err));
 	    return(CMD_ERROR);
 	}
     }
@@ -299,11 +315,11 @@ command_unset(int argc, char *argv[]) 
     int		err;
     
     if (argc != 2) {
-	command_errmsg = "wrong number of arguments";
+	command_seterr("wrong number of arguments");
 	return(CMD_ERROR);
     } else {
 	if ((err = unsetenv(argv[1])) != 0) {
-	    command_errmsg = strerror(err);
+	    command_seterr("%s", strerror(err));
 	    return(CMD_ERROR);
 	}
     }
@@ -373,7 +389,7 @@ command_read(int argc, char *argv[])
 	case 't':
 	    timeout = strtol(optarg, &cp, 0);
 	    if (cp == optarg) {
-		sprintf(command_errbuf, "bad timeout '%s'", optarg);
+		command_seterr("bad timeout '%s'", optarg);
 		return(CMD_ERROR);
 	    }
 	    break;
@@ -416,12 +432,12 @@ command_more(int argc, char *argv[])
     res=0;
     pager_open();
     for (i = 1; (i < argc) && (res == 0); i++) {
-	sprintf(line, "*** FILE %s BEGIN ***\n", argv[i]);
+	snprintf(line, sizeof(line), "*** FILE %s BEGIN ***\n", argv[i]);
 	if (pager_output(line))
 		break;
         res = page_file(argv[i]);
 	if (!res) {
-	    sprintf(line, "*** FILE %s END ***\n", argv[i]);
+	    snprintf(line, sizeof(line), "*** FILE %s END ***\n", argv[i]);
 	    res = pager_output(line);
 	}
     }
@@ -441,7 +457,7 @@ page_file(char *filename)
     result = pager_file(filename);
 
     if (result == -1)
-	sprintf(command_errbuf, "error showing %s", filename);
+	command_seterr("error showing %s", filename);
 
     return result;
 }   
@@ -475,11 +491,11 @@ command_lsdev(int argc, char *argv[])
 
     pager_open();
 
-    sprintf(line, "Device Enumeration:\n");
+    snprintf(line, sizeof(line), "Device Enumeration:\n");
     pager_output(line);
 
     for (i = 0; i < ndevs; i++) {
-	 sprintf(line, "%s\n", devsw[i].dv_name);
+	 snprintf(line, sizeof(line), "%s\n", devsw[i].dv_name);
 	    if (pager_output(line))
 		    break;
     }
Index: src/sys/arch/ia64/stand/common/ls.c
diff -u src/sys/arch/ia64/stand/common/ls.c:1.3 src/sys/arch/ia64/stand/common/ls.c:1.4
--- src/sys/arch/ia64/stand/common/ls.c:1.3	Mon Jul 20 00:59:03 2009
+++ src/sys/arch/ia64/stand/common/ls.c	Tue Mar 25 14:35:32 2014
@@ -1,5 +1,5 @@
 /*
- * $NetBSD: ls.c,v 1.3 2009/07/20 04:59:03 kiyohara Exp $
+ * $NetBSD: ls.c,v 1.4 2014/03/25 18:35:32 christos Exp $
  */
 
 /*-
@@ -104,18 +104,21 @@ command_ls(int argc, char *argv[])
     while ((d = readdirfd(fd)) != NULL) {
 /*	if (strcmp(d->d_name, ".") && strcmp(d->d_name, "..")) { */
 	    if (verbose) {
+		size_t buflen;
 		/* stat the file, if possible */
 		sb.st_size = 0;
-		buf = alloc(strlen(path) + strlen(d->d_name) + 2);
-		sprintf(buf, "%s/%s", path, d->d_name);
+		buflen = strlen(path) + strlen(d->d_name) + 2;
+		buf = alloc(buflen);
+		snprintf(buf, buflen, "%s/%s", path, d->d_name);
 		/* ignore return, could be symlink, etc. */
 		if (stat(buf, &sb))
 		    sb.st_size = 0;
 		free(buf);
-		sprintf(lbuf, " %c %8d %s\n", typestr[d->d_type],
+		snprintf(lbuf, sizeof(lbuf), " %c %8d %s\n", typestr[d->d_type],
 		    (int)sb.st_size, d->d_name);
 	    } else {
-	      sprintf(lbuf, " %c  %s\n", typestr[d->d_type], d->d_name);
+	      snprintf(lbuf, sizeof(lbuf), " %c  %s\n", typestr[d->d_type],
+		  d->d_name);
 	    }
 	    if (pager_output(lbuf))
 		goto out;
@@ -151,7 +154,7 @@ ls_getdir(char **pathp)
 
     /* Make sure the path is respectable to begin with */
     if (archsw.arch_getdev(NULL, path, &cp)) {
-	sprintf(command_errbuf, "bad path '%s'", path);
+	command_seterr("bad path '%s'", path);
 	goto out;
     }
     
@@ -160,15 +163,15 @@ ls_getdir(char **pathp)
 	strcat(path, "/");
     fd = open(path, O_RDONLY);
     if (fd < 0) {
-	sprintf(command_errbuf, "open '%s' failed: %s", path, strerror(errno));
+	command_seterr("open '%s' failed: %s", path, strerror(errno));
 	goto out;
     }
     if (fstat(fd, &sb) < 0) {
-	sprintf(command_errbuf, "stat failed: %s", strerror(errno));
+	command_seterr("stat failed: %s", strerror(errno));
 	goto out;
     }
     if (!S_ISDIR(sb.st_mode)) {
-	sprintf(command_errbuf, "%s: %s", path, strerror(ENOTDIR));
+	command_seterr("%s: %s", path, strerror(ENOTDIR));
 	goto out;
     }
 

Index: src/sys/arch/ia64/stand/common/fileload.c
diff -u src/sys/arch/ia64/stand/common/fileload.c:1.4 src/sys/arch/ia64/stand/common/fileload.c:1.5
--- src/sys/arch/ia64/stand/common/fileload.c:1.4	Thu Jun 27 17:22:16 2013
+++ src/sys/arch/ia64/stand/common/fileload.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: fileload.c,v 1.4 2013/06/27 21:22:16 christos Exp $	*/
+/*	$NetBSD: fileload.c,v 1.5 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -68,7 +68,7 @@ command_load(int argc, char *argv[])
     optreset = 1;
     typestr = NULL;
     if (argc == 1) {
-	command_errmsg = "no filename specified";
+	command_seterr("no filename specified");
 	return(CMD_ERROR);
     }
     while ((ch = getopt(argc, argv, "k:")) != -1) {
@@ -91,7 +91,7 @@ command_load(int argc, char *argv[])
     if (dokld || file_havepath(argv[1])) {
 	int error = file_loadkernel(argv[1], argc - 2, argv + 2);
 	if (error == EEXIST)
-	    sprintf(command_errbuf, "warning: KLD '%s' already loaded", argv[1]);
+	    command_seterr("warning: KLD '%s' already loaded", argv[1]);
 	return error == 0 ? CMD_OK : CMD_ERROR;
     }
     return CMD_OK;
@@ -127,7 +127,7 @@ command_lskern(int argc, char *argv[])
 
     pager_open();
     for (fp = preloaded_files; fp; fp = fp->f_next) {
-	sprintf(lbuf, " %p: %s (%s, 0x%lx)\n", 
+	snprintf(lbuf, sizeof(lbuf), " %p: %s (%s, 0x%lx)\n", 
 		(void *) fp->f_addr, fp->f_name, fp->f_type, (long) fp->f_size);
 	pager_output(lbuf);
 	if (fp->f_args != NULL) {
@@ -161,7 +161,7 @@ file_load(char *filename, vaddr_t dest, 
 	if (error == EFTYPE)
 	    continue;		/* Unknown to this handler? */
 	if (error) {
-	    sprintf(command_errbuf, "can't load file '%s': %s",
+	    command_seterr("can't load file '%s': %s",
 		filename, strerror(error));
 	    break;
 	}
@@ -184,7 +184,7 @@ file_loadkernel(char *filename, int argc
      */
     fp = file_findfile(filename, NULL);
     if (fp) {
-	sprintf(command_errbuf, "warning: KLD '%s' already loaded", filename);
+	command_seterr("warning: KLD '%s' already loaded", filename);
 	free(filename);
 	return (0);
     }
@@ -202,7 +202,7 @@ file_loadkernel(char *filename, int argc
 	file_insert_tail(fp);		/* Add to the list of loaded files */
     } while(0);
     if (err == EFTYPE)
-	sprintf(command_errbuf, "don't know how to load module '%s'", filename);
+	command_seterr("don't know how to load module '%s'", filename);
     if (err && fp)
 	file_discard(fp);
     free(filename);

Index: src/sys/arch/ia64/stand/common/misc.c
diff -u src/sys/arch/ia64/stand/common/misc.c:1.6 src/sys/arch/ia64/stand/common/misc.c:1.7
--- src/sys/arch/ia64/stand/common/misc.c:1.6	Thu Dec 27 15:21:51 2012
+++ src/sys/arch/ia64/stand/common/misc.c	Tue Mar 25 14:35:32 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: misc.c,v 1.6 2012/12/27 20:21:51 martin Exp $	*/
+/*	$NetBSD: misc.c,v 1.7 2014/03/25 18:35:32 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -175,7 +175,7 @@ hexdump(void *region, size_t len)
     void *	line;
     int		x, c;
     char	lbuf[80];
-#define emit(fmt, args...)	{sprintf(lbuf, fmt , ## args); pager_output(lbuf);}
+#define emit(fmt, args...)	{snprintf(lbuf, sizeof(lbuf), fmt , ## args); pager_output(lbuf);}
 
     pager_open();
     for (line = region; line < (region + len); line += 16) {

Index: src/sys/arch/ia64/stand/efi/libefi/devicename.c
diff -u src/sys/arch/ia64/stand/efi/libefi/devicename.c:1.5 src/sys/arch/ia64/stand/efi/libefi/devicename.c:1.6
--- src/sys/arch/ia64/stand/efi/libefi/devicename.c:1.5	Thu Dec 27 15:21:51 2012
+++ src/sys/arch/ia64/stand/efi/libefi/devicename.c	Tue Mar 25 14:35:33 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: devicename.c,v 1.5 2012/12/27 20:21:51 martin Exp $	*/
+/*	$NetBSD: devicename.c,v 1.6 2014/03/25 18:35:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -208,25 +208,24 @@ efi_fmtdev(void *vdev)
 {
 	struct efi_devdesc *dev = (struct efi_devdesc *)vdev;
 	static char	buf[128];	/* XXX device length constant? */
-	char		*cp;
+	size_t		len;
     
 	switch(dev->d_type) {
 	case DEVT_NONE:
-		strcpy(buf, "(no device)");
+		strlcpy(buf, "(no device)", sizeof(buf));
 		break;
 
 	case DEVT_DISK:
-		cp = buf;
-		cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_kind.efidisk.unit);
+		len = snprintf(buf, sizeof(buf), "%s%d", dev->d_dev->dv_name, dev->d_kind.efidisk.unit);
 		if (dev->d_kind.efidisk.slice > 0)
-			cp += sprintf(cp, "s%d", dev->d_kind.efidisk.slice);
+			len += snprintf(buf + len, sizeof(buf) - len, "s%d", dev->d_kind.efidisk.slice);
 		if (dev->d_kind.efidisk.partition >= 0)
-			cp += sprintf(cp, "%c", dev->d_kind.efidisk.partition + 'a');
-		strcat(cp, ":");
+			len += snprintf(buf + len, sizeof(buf) - len, "%c", dev->d_kind.efidisk.partition + 'a');
+		strlcat(buf, ":", sizeof(buf) - len);
 		break;
 
 	case DEVT_NET:
-		sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit);
+		snprintf(buf, sizeof(buf), "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit);
 		break;
 	}
 	return(buf);
Index: src/sys/arch/ia64/stand/efi/libefi/efifs.c
diff -u src/sys/arch/ia64/stand/efi/libefi/efifs.c:1.5 src/sys/arch/ia64/stand/efi/libefi/efifs.c:1.6
--- src/sys/arch/ia64/stand/efi/libefi/efifs.c:1.5	Sun Jul 17 16:54:42 2011
+++ src/sys/arch/ia64/stand/efi/libefi/efifs.c	Tue Mar 25 14:35:33 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: efifs.c,v 1.5 2011/07/17 20:54:42 joerg Exp $	*/
+/*	$NetBSD: efifs.c,v 1.6 2014/03/25 18:35:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001 Doug Rabson
@@ -340,7 +340,7 @@ efifs_dev_print(int verbose)
 	char		line[80];
 
 	for (i = 0; i < fs_handle_count; i++) {
-		sprintf(line, "    fs%d:   EFI filesystem", i);
+		snprintf(line, sizeof(line), "    fs%d:   EFI filesystem", i);
 		pager_output(line);
 		/* XXX more detail? */
 		pager_output("\n");

Index: src/sys/arch/ia64/stand/ia64/efi/main.c
diff -u src/sys/arch/ia64/stand/ia64/efi/main.c:1.8 src/sys/arch/ia64/stand/ia64/efi/main.c:1.9
--- src/sys/arch/ia64/stand/ia64/efi/main.c:1.8	Thu Dec 27 15:21:51 2012
+++ src/sys/arch/ia64/stand/ia64/efi/main.c	Tue Mar 25 14:35:33 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.8 2012/12/27 20:21:51 martin Exp $	*/
+/*	$NetBSD: main.c,v 1.9 2014/03/25 18:35:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -272,7 +272,8 @@ guid_to_string(EFI_GUID *guid)
 {
 	static char buf[40];
 
-	sprintf(buf, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+	snprintf(buf, sizeof(buf),
+	    "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
 	    guid->Data1, guid->Data2, guid->Data3, guid->Data4[0],
 	    guid->Data4[1], guid->Data4[2], guid->Data4[3], guid->Data4[4],
 	    guid->Data4[5], guid->Data4[6], guid->Data4[7]);
@@ -443,7 +444,8 @@ print_trs(int type)
 			buf.pte &= ~PTE_DIRTY;
 		if (!(res.pal_result[0] & 8))
 			buf.pte &= ~PTE_MA_MASK;
-		sprintf(lbuf, "%03d %06x %013lx %013lx %4s %d  %d  %d  %d %d "
+		snprintf(lbuf, sizeof(lbuf),
+		    "%03d %06x %013lx %013lx %4s %d  %d  %d  %d %d "
 		    "%-3s %d %06x\n", i, buf.rr.rr_rid, buf.ifa >> 12,
 		    (buf.pte & PTE_PPN_MASK) >> 12,
 		    psnames[(buf.itir & ITIR_PS_MASK) >> 2],

Index: src/sys/arch/ia64/stand/ia64/ski/devicename.c
diff -u src/sys/arch/ia64/stand/ia64/ski/devicename.c:1.4 src/sys/arch/ia64/stand/ia64/ski/devicename.c:1.5
--- src/sys/arch/ia64/stand/ia64/ski/devicename.c:1.4	Thu Dec 27 15:21:51 2012
+++ src/sys/arch/ia64/stand/ia64/ski/devicename.c	Tue Mar 25 14:35:33 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: devicename.c,v 1.4 2012/12/27 20:21:51 martin Exp $	*/
+/*	$NetBSD: devicename.c,v 1.5 2014/03/25 18:35:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998 Michael Smith <msm...@freebsd.org>
@@ -203,7 +203,7 @@ ski_fmtdev(void *vdev)
 {
 	struct ski_devdesc *dev = (struct ski_devdesc *)vdev;
 	static char	buf[128];	/* XXX device length constant? */
-	char		*cp;
+	size_t len;
     
 	switch(dev->d_type) {
 	case DEVT_NONE:
@@ -211,17 +211,16 @@ ski_fmtdev(void *vdev)
 		break;
 
 	case DEVT_DISK:
-		cp = buf;
-		cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_kind.skidisk.unit);
+		len = snprintf(buf, sizeof(buf), "%s%d", dev->d_dev->dv_name, dev->d_kind.skidisk.unit);
 		if (dev->d_kind.skidisk.slice > 0)
-			cp += sprintf(cp, "s%d", dev->d_kind.skidisk.slice);
+			len = snprintf(buf, sizeof(buf) - len, "s%d", dev->d_kind.skidisk.slice);
 		if (dev->d_kind.skidisk.partition >= 0)
-			cp += sprintf(cp, "%c", dev->d_kind.skidisk.partition + 'a');
-		strcat(cp, ":");
+			len = snprintf(buf, sizeof(buf) - len, "%c", dev->d_kind.skidisk.partition + 'a');
+		strlcat(cp, ":", sizeof(buf) - len);
 		break;
 
 	case DEVT_NET:
-		sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit);
+		snprintf(buf, sizeof(buf) - len, "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit);
 		break;
 	}
 	return(buf);

Reply via email to