Commit Diff


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;