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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 <[email protected]>
@@ -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);