commit fafa622a5bdf71adfbb4334541c3b65f29c89ca9 from: Russ Cox via: Russ Cox date: Sun Jan 12 20:07:42 2020 UTC all: fix or silence various gcc warnings As usual, gcc finds some real problems but also reports a ton of noise. Fix the problems and quiet the noise. commit - fa325e9b42b0bdfb48857d1958d9fb7ceac55151 commit + fafa622a5bdf71adfbb4334541c3b65f29c89ca9 blob - f21ea754496b9f12dd1264d682c75a7d78c31d9d blob + 20919e9ace9d6ff4580c0dfa8ea47f50fcab0d57 --- bin/9c +++ bin/9c @@ -14,6 +14,10 @@ usegcc() -Wno-comment \ -Wno-sign-compare \ -Wno-unknown-pragmas \ + -Wno-misleading-indentation \ + -Wno-stringop-truncation \ + -Wno-stringop-overflow \ + -Wno-format-truncation \ -fno-omit-frame-pointer \ -fsigned-char \ " blob - 4f181e98127d5385602d2d30911c29c83950c110 blob + 84860d16109bb6c588ce01e164c7d41824df2774 --- src/cmd/auth/factotum/p9cr.c +++ src/cmd/auth/factotum/p9cr.c @@ -289,6 +289,8 @@ p9crresp(ServerState *s, uchar *resp, int resplen) Authenticator a; Ticket t; Ticketreq tr; + + memset(&tr, 0, sizeof tr); // TODO: what should tr be initialized to? if(xiowrite(s->asfd, resp, resplen) != resplen) return -1; blob - 0a71e2dd81b588ccf211458eae62fab1cc6da91d blob + 29e2b3d7efb08473324972d40d9c9b31a1e34905 --- src/cmd/draw/tweak.c +++ src/cmd/draw/tweak.c @@ -1142,7 +1142,7 @@ textedit(Thing *t, char *tag) fc = f->info; for(i=0; i<=w && i<=f->n; i++) nfc[i] = fc[i]; - if(w+1 < i) + if(i < w+1) memset(nfc+i, 0, ((w+1)-i)*sizeof(Fontchar)); x = fc[f->n].x; for(; i<=w; i++) blob - 4ca0bbd9d3501a2988ae37eae9470d4f78d415e8 blob + 6e2c832594f8749c5fa00db9853a7d0521ec9403 --- src/cmd/eqn/text.c +++ src/cmd/eqn/text.c @@ -257,7 +257,7 @@ trans(int c, char *p1) char *pad(int n) /* return the padding as a string */ { - static char buf[20]; + static char buf[30]; buf[0] = 0; if (n < 0) { blob - 72f0fc3ae8d1573fab3d8819c23803b151db4037 blob + ea6404589bc63b8769c5d1fe567a4a48e95a3305 --- src/cmd/grap/coord.c +++ src/cmd/grap/coord.c @@ -35,7 +35,7 @@ void coordlog(int n) /* remember log scaling */ void coord(Obj *p) /* set coord range */ { - static char buf[10]; + static char buf[20]; ncoord++; if (ncoord > 1 && strcmp(p->name, dflt_coord) == 0) { blob - 026641bddd6f6526789b5a71d912d440c9a5d9e7 blob + 5b0c1d0070b78cb9a5b703b9467c303a1cd0f41d --- src/cmd/mk/archive.c +++ src/cmd/mk/archive.c @@ -202,7 +202,7 @@ atimes(char *ar) name[namelen] = 0; namelen = 0; }else{ - strncpy(name, h.name, sizeof(h.name)); + memmove(name, h.name, sizeof(h.name)); for(i = sizeof(h.name)-1; i > 0 && name[i] == ' '; i--) ; if(name[i] == '/') /* system V bug */ blob - 6c84f2fb82806eee1af8a396667a8cd26ba9fa3d blob + d3d68a350295cced0e572d5ed1ba3cc1235d7365 --- src/cmd/paint/eenter.c +++ src/cmd/paint/eenter.c @@ -78,6 +78,7 @@ eenter(char *ask, char *buf, int len, Mouse *m) b = screen; sc = b->clipr; replclipr(b, 0, b->r); + t = ZP; while(!done){ p = stringsize(font, buf ? buf : ""); blob - a81f622ef5e3d536ec3a72eec30cc735f4ad19f1 blob + 92e8d62df9fbbebd9eed8ce16ab8bd73e4edc757 --- src/cmd/pic/input.c +++ src/cmd/pic/input.c @@ -435,7 +435,7 @@ double errcheck(double x, char *s) return x; } -char errbuf[200]; +char errbuf[1000]; void eprint(void); blob - 928d38dd1b8f034f38f4358d2bfbf521168b98c6 blob + cdaf71e59f3ab26c3a091c59782475083c82b5fa --- src/cmd/pic/pic.h +++ src/cmd/pic/pic.h @@ -9,7 +9,7 @@ extern void yyerror(char *); -extern char errbuf[200]; +extern char errbuf[1000]; #undef sprintf /* Snow Leopard */ blob - 56f620d5284c6cd434dd04099b7be9899a83597c blob + 12942e112224d6d4f197e2d992d3d75248c02474 --- src/cmd/rio/showevent/ShowEvent.c +++ src/cmd/rio/showevent/ShowEvent.c @@ -68,7 +68,7 @@ Time time; unsigned long min; unsigned long hr; unsigned long day; - static char buffer[32]; + static char buffer[50]; msec = time % 1000; time /= 1000; blob - a81f622ef5e3d536ec3a72eec30cc735f4ad19f1 blob + 92e8d62df9fbbebd9eed8ce16ab8bd73e4edc757 --- src/cmd/svgpic/input.c +++ src/cmd/svgpic/input.c @@ -435,7 +435,7 @@ double errcheck(double x, char *s) return x; } -char errbuf[200]; +char errbuf[1000]; void eprint(void); blob - 928d38dd1b8f034f38f4358d2bfbf521168b98c6 blob + cdaf71e59f3ab26c3a091c59782475083c82b5fa --- src/cmd/svgpic/pic.h +++ src/cmd/svgpic/pic.h @@ -9,7 +9,7 @@ extern void yyerror(char *); -extern char errbuf[200]; +extern char errbuf[1000]; #undef sprintf /* Snow Leopard */ blob - 6885f650353df04c4e51d2a0e6b9f1bcd7992733 blob + 85b7dbb5705bcf4ccf54a5d8d544ef18f1b6f639 --- src/cmd/tpic/input.c +++ src/cmd/tpic/input.c @@ -438,7 +438,7 @@ errcheck(double x, char *s) return x; } -char errbuf[200]; +char errbuf[1000]; void yyerror(char *s) blob - a11c74782fd3812e2b01f1734448b9829934ada7 blob + 104cacebf03cdc3a931eea5bd6979176d201c0b4 --- src/cmd/tpic/pic.h +++ src/cmd/tpic/pic.h @@ -11,7 +11,7 @@ #define dprintf if(dbg)printf -extern char errbuf[200]; +extern char errbuf[1000]; #undef sprintf /* Snow Leopard */ blob - 1e0dc968371a37da3e874c5e23ce60bf4c6cc571 blob + 3a2d8d85feb02f6c0d1c9e0546752dac28dde78b --- src/cmd/troff/t6.c +++ src/cmd/troff/t6.c @@ -723,15 +723,15 @@ setfp(int pos, int f, char *truename, int print) /* mo else strcpy(shortname, (char *) unpair(f)); if (truename && strrchr(truename, '/')) { /* .fp 1 R dir/file: use verbatim */ - sprintf(pathname, "%s", truename); + snprintf(pathname, NS, "%s", truename); if (fonts[pos].truename) free(fonts[pos].truename); fonts[pos].truename = strdupl(truename); } else if (truename) { /* synonym: .fp 1 R Avant */ - sprintf(pathname, "%s/dev%s/%s", fontdir, devname, truename); + snprintf(pathname, NS, "%s/dev%s/%s", fontdir, devname, truename); truename = 0; /* so doesn't get repeated by ptfpcmd */ } else /* vanilla: .fp 5 XX */ - sprintf(pathname, "%s/dev%s/%s", fontdir, devname, shortname); + snprintf(pathname, NS, "%s/dev%s/%s", fontdir, devname, shortname); if (truename == 0 && fonts[pos].truename != 0) { free(fonts[pos].truename); fonts[pos].truename = 0; blob - 2cc23574b1afd2bf917db9d1b9acd197eef6ad70 blob + 4e56f5ee8058645d0fbfeb2ed91b5b929ee106e6 --- src/lib9/_p9dialparse.c +++ src/lib9/_p9dialparse.c @@ -72,7 +72,7 @@ p9dialparse(char *addr, char **pnet, char **punix, voi if((port = strchr(host, '!')) == nil){ if(strcmp(net, "unix")==0 || strcmp(net, "net")==0){ Unix: - if(strlen(host)+1 > sizeof ((struct sockaddr_un*)&ss)->sun_path){ + if(strlen(host)+1 > sizeof ((struct sockaddr_un*)ss)->sun_path){ werrstr("unix socket name too long"); return -1; } blob - 8f536456d5004d41eca0a601f206954ce237827e blob + 3d1b05fed7be930706401c87067195ed7600e9d4 --- src/lib9/lrand.c +++ src/lib9/lrand.c @@ -63,17 +63,15 @@ p9lrand(void) lock(&lk); - rng_tap--; - if(rng_tap < rng_vec) { - if(rng_feed == 0) { + if(rng_tap <= rng_vec) { + if(rng_feed == 0) isrand(1); - rng_tap--; - } rng_tap += LEN; } - rng_feed--; - if(rng_feed < rng_vec) + rng_tap--; + if(rng_feed <= rng_vec) rng_feed += LEN; + rng_feed--; x = (*rng_feed + *rng_tap) & MASK; *rng_feed = x;