diff -Nru /n/sources/plan9/sys/src/cmd/cc/cc.y /sys/src/cmd/cc/cc.y --- /n/sources/plan9/sys/src/cmd/cc/cc.y Tue Apr 23 23:19:24 2013 +++ /sys/src/cmd/cc/cc.y Sun Nov 6 00:00:00 2016 @@ -1008,7 +1008,7 @@ | LSTRUCT sbody { taggen++; - sprint(symb, "_%d_", taggen); + snprint(symb, sizeof symb, "_%d_", taggen); $$ = dotag(lookup(), TSTRUCT, autobn); $$->link = $2; sualign($$); @@ -1033,7 +1033,7 @@ | LUNION sbody { taggen++; - sprint(symb, "_%d_", taggen); + snprint(symb, sizeof symb, "_%d_", taggen); $$ = dotag(lookup(), TUNION, autobn); $$->link = $2; sualign($$); diff -Nru /n/sources/plan9/sys/src/cmd/cc/funct.c /sys/src/cmd/cc/funct.c --- /n/sources/plan9/sys/src/cmd/cc/funct.c Sun Mar 2 23:10:19 2014 +++ /sys/src/cmd/cc/funct.c Sun Nov 6 00:00:00 2016 @@ -262,7 +262,7 @@ o = ftabinit[i].op; if(o == OXXX) break; - sprint(str, "%s_%s_", t->tag->name, ftabinit[i].name); + snprint(str, sizeof str, "%s_%s_", t->tag->name, ftabinit[i].name); n = new(ONAME, Z, Z); n->sym = slookup(str); f->sym[o] = n->sym; @@ -296,7 +296,7 @@ /* * OCAST types T1 _T2_T1_(T2) */ - sprint(str, "_%s%s_", gtabinit[i].name, t->tag->name); + snprint(str, sizeof str, "_%s%s_", gtabinit[i].name, t->tag->name); n = new(ONAME, Z, Z); n->sym = slookup(str); f->castto[o] = n->sym; @@ -305,7 +305,7 @@ f1->down = types[o]; dodecl(xdecl, CEXTERN, f1, n); - sprint(str, "%s_%s_", t->tag->name, gtabinit[i].name); + snprint(str, sizeof str, "%s_%s_", t->tag->name, gtabinit[i].name); n = new(ONAME, Z, Z); n->sym = slookup(str); f->castfr[o] = n->sym; diff -Nru /n/sources/plan9/sys/src/cmd/cc/lex.c /sys/src/cmd/cc/lex.c --- /n/sources/plan9/sys/src/cmd/cc/lex.c Fri Aug 2 20:36:13 2013 +++ /sys/src/cmd/cc/lex.c Sun Nov 6 00:00:00 2016 @@ -258,11 +258,11 @@ /* 1999 ANSI C requires recognising // comments */ av[i++] = strdup("-+"); for(c = 0; c < ndef; c++) { - sprint(opt, "-D%s", defs[c]); + snprint(opt, sizeof opt, "-D%s", defs[c]); av[i++] = strdup(opt); } for(c = 0; c < ninclude; c++) { - sprint(opt, "-I%s", include[c]); + snprint(opt, sizeof opt, "-I%s", include[c]); av[i++] = strdup(opt); } if(strcmp(file, "stdin") != 0) @@ -1386,19 +1386,19 @@ if(str[0]) strcat(str, " "); if(t->garb&~GINCOMPLETE) { - sprint(s, "%s ", gnames[t->garb&~GINCOMPLETE]); + snprint(s, sizeof s, "%s ", gnames[t->garb&~GINCOMPLETE]); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); } - sprint(s, "%s", tnames[et]); + snprint(s, sizeof s, "%s", tnames[et]); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); if(et == TFUNC && (t1 = t->down)) { - sprint(s, "(%T", t1); + snprint(s, sizeof s, "(%T", t1); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); while(t1 = t1->down) { - sprint(s, ", %T", t1); + snprint(s, sizeof s, ", %T", t1); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); } @@ -1409,12 +1409,12 @@ n = t->width; if(t->link && t->link->width) n /= t->link->width; - sprint(s, "[%ld]", n); + snprint(s, sizeof s, "[%ld]", n); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); } if(t->nbits) { - sprint(s, " %d:%d", t->shift, t->nbits); + snprint(s, sizeof s, " %d:%d", t->shift, t->nbits); if(strlen(str) + strlen(s) < STRINGSZ) strcat(str, s); }