This is the patch to remove sprint from the pc sources. Reference: /n/sources/patch/saved/remove-sprint-pc Date: Fri Feb 25 22:54:41 CET 2011 Signed-off-by: 20h@r-36.net --- /sys/src/9/pc/trap.c Fri Feb 25 22:47:51 2011 +++ /sys/src/9/pc/trap.c Fri Feb 25 22:47:47 2011 @@ -363,7 +363,7 @@ } else if(vno < nelem(excname) && user){ spllo(); - sprint(buf, "sys: trap: %s", excname[vno]); + snprint(buf, sizeof(buf), "sys: trap: %s", excname[vno]); postnote(up, 1, buf, NDebug); } else if(vno >= VectorPIC && vno != VectorSYSCALL){ @@ -591,7 +591,7 @@ panic("kernel bpt"); /* restore pc to instruction that caused the trap */ ureg->pc--; - sprint(buf, "sys: breakpoint"); + snprint(buf, sizeof(buf), "sys: breakpoint"); postnote(up, 1, buf, NDebug); } @@ -641,7 +641,7 @@ } checkpages(); checkfault(addr, ureg->pc); - sprint(buf, "sys: trap: fault %s addr=0x%lux", + snprint(buf, sizeof(buf), "sys: trap: fault %s addr=0x%lux", read ? "read" : "write", addr); postnote(up, 1, buf, NDebug); } @@ -806,7 +806,7 @@ l = strlen(n->msg); if(l > ERRMAX-15) /* " pc=0x12345678\0" */ l = ERRMAX-15; - sprint(n->msg+l, " pc=0x%.8lux", ureg->pc); + snprint(n->msg+l, sizeof(n->msg)-l, " pc=0x%.8lux", ureg->pc); } if(n->flag!=NUser && (up->notified || up->notify==0)){ --- /sys/src/9/pc/main.c Fri Feb 25 22:48:01 2011 +++ /sys/src/9/pc/main.c Fri Feb 25 22:47:56 2011 @@ -298,10 +298,10 @@ cp[BOOTLINELEN-1] = 0; buf[0] = 0; if(strncmp(cp, "fd", 2) == 0){ - sprint(buf, "local!#f/fd%lddisk", strtol(cp+2, 0, 0)); + snprint(buf, sizeof(buf), "local!#f/fd%lddisk", strtol(cp+2, 0, 0)); av[ac++] = pusharg(buf); } else if(strncmp(cp, "sd", 2) == 0){ - sprint(buf, "local!#S/sd%c%c/fs", *(cp+2), *(cp+3)); + snprint(buf, sizeof(buf), "local!#S/sd%c%c/fs", *(cp+2), *(cp+3)); av[ac++] = pusharg(buf); } else if(strncmp(cp, "ether", 5) == 0) av[ac++] = pusharg("-n"); --- /sys/src/9/pc/devlpt.c Fri Feb 25 22:48:08 2011 +++ /sys/src/9/pc/devlpt.c Fri Feb 25 22:48:05 2011 @@ -74,7 +74,7 @@ if(qid.path < Qdata) qid.path += lptbase[c->dev]; qid.vers = c->dev; - sprint(up->genbuf, "lpt%lud%s", c->dev+1, tab->name); + snprint(up->genbuf, sizeof(up->genbuf), "lpt%lud%s", c->dev+1, tab->name); devdir(c, qid, up->genbuf, tab->length, eve, tab->perm, dp); return 1; } @@ -96,7 +96,7 @@ error(Ebadarg); if(lptallocd[i-1] == 0){ int ecr; - sprint(name, "lpt%d", i-1); + snprint(name, sizeof(name), "lpt%d", i-1); if(ioalloc(lptbase[i-1], 3, 0, name) < 0) error("lpt port space in use"); lptallocd[i-1] = 1; @@ -149,7 +149,7 @@ if(c->qid.path == Qdir) return devdirread(c, a, n, lptdir, nelem(lptdir), lptgen); - size = sprint(str, "0x%2.2ux\n", inb(c->qid.path)); + size = snprint(str, sizeof(str), "0x%2.2ux\n", inb(c->qid.path)); o = c->offset; if(o >= size) return 0; --- /sys/src/9/pc/devlml.c Fri Feb 25 22:48:14 2011 +++ /sys/src/9/pc/devlml.c Fri Feb 25 22:48:11 2011 @@ -175,7 +175,7 @@ memset(&segbuf, 0, sizeof(segbuf)); segbuf.attr = SG_PHYSICAL; - sprint(name, "lml%d.mjpg", nlml); + snprint(name, sizeof(name), "lml%d.mjpg", nlml); kstrdup(&segbuf.name, name); segbuf.pa = PADDR(lml->codedata); segbuf.size = Codedatasize; @@ -186,7 +186,7 @@ memset(&segbuf, 0, sizeof(segbuf)); segbuf.attr = SG_PHYSICAL; - sprint(name, "lml%d.regs", nlml); + snprint(name, sizeof(name), "lml%d.regs", nlml); kstrdup(&segbuf.name, name); segbuf.pa = (ulong)regpa; segbuf.size = pcidev->mem[0].size; --- /sys/src/9/pc/devether.c Fri Feb 25 22:48:25 2011 +++ /sys/src/9/pc/devether.c Fri Feb 25 22:48:20 2011 @@ -428,16 +428,16 @@ if(ether->irq >= 0) intrenable(ether->irq, ether->interrupt, ether, ether->tbdf, name); - i = sprint(buf, "#l%d: %s: %dMbps port 0x%luX irq %d", + i = snprint(buf, sizeof(buf), "#l%d: %s: %dMbps port 0x%luX irq %d", ctlrno, cards[cardno].type, ether->mbps, ether->port, ether->irq); if(ether->mem) - i += sprint(buf+i, " addr 0x%luX", ether->mem); + i += snprint(buf+i, sizeof(buf)-i, " addr 0x%luX", ether->mem); if(ether->size) - i += sprint(buf+i, " size 0x%luX", ether->size); - i += sprint(buf+i, ": %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux", + i += snprint(buf+i, sizeof(buf)-i, " size 0x%luX", ether->size); + i += snprint(buf+i, sizeof(buf)-i, ": %2.2ux%2.2ux%2.2ux%2.2ux%2.2ux%2.2ux", ether->ea[0], ether->ea[1], ether->ea[2], ether->ea[3], ether->ea[4], ether->ea[5]); - sprint(buf+i, "\n"); + snprint(buf+i, sizeof(buf)-i, "\n"); print(buf); /* compute log10(ether->mbps) into lg */ --- /sys/src/9/pc/devarch.c Fri Feb 25 22:48:35 2011 +++ /sys/src/9/pc/devarch.c Fri Feb 25 22:48:30 2011 @@ -354,6 +354,7 @@ { char *buf, *p; int port; + long pn; ushort *sp; ulong *lp; IOMap *m; @@ -402,6 +403,7 @@ if((buf = malloc(n)) == nil) error(Enomem); p = buf; + pn = n; n = n/Linelen; offset = offset/Linelen; @@ -409,8 +411,9 @@ for(m = iomap.m; n > 0 && m != nil; m = m->next){ if(offset-- > 0) continue; - sprint(p, "%8lux %8lux %-12.12s\n", m->start, m->end-1, m->tag); + snprint(p, pn, "%8lux %8lux %-12.12s\n", m->start, m->end-1, m->tag); p += Linelen; + pn -= Linelen; n--; } unlock(&iomap); @@ -706,9 +709,9 @@ int i; char buf[128]; - i = sprint(buf, "cpu%d: %dMHz ", m->machno, m->cpumhz); + i = snprint(buf, sizeof(buf), "cpu%d: %dMHz ", m->machno, m->cpumhz); if(m->cpuidid[0]) - i += sprint(buf+i, "%12.12s ", m->cpuidid); + i += snprint(buf+i, sizeof(buf)-i, "%12.12s ", m->cpuidid); seprint(buf+i, buf + sizeof buf - 1, "%s (cpuid: AX 0x%4.4uX DX 0x%4.4uX)\n", m->cpuidtype, m->cpuidax, m->cpuiddx);