some newfangled gcc found these array out-of-bounds references Reference: /n/sources/patch/applied/old-n-buggy Date: Sat May 10 19:25:54 CES 2008 Signed-off-by: rsc@swtch.com --- /sys/src/cmd/eqn/main.c Sat May 10 19:25:42 2008 +++ /sys/src/cmd/eqn/main.c Sat May 10 19:25:41 2008 @@ -4,7 +4,7 @@ char *version = "version Oct 24, 1991"; -char in[MAXLINE]; /* input buffer */ +char in[MAXLINE+1]; /* input buffer */ int noeqn; char *cmdname; --- /sys/src/cmd/jpg/readgif.c Sat May 10 19:25:43 2008 +++ /sys/src/cmd/jpg/readgif.c Sat May 10 19:25:42 2008 @@ -351,8 +351,10 @@ if(hsize>0 && Bread(h->fd, h->buf, hsize) != hsize) giferror(h, extreaderr); if(!hasdata){ - if(h->buf[hsize-1] != 0) - giferror(h, "ReadGIF: bad extension format"); + /* + * This code used to check h->buf[hsize-1] != 0 + * and giferror if so, but if !hasdata, hsize == 0. + */ return; } --- /sys/src/cmd/tapefs/v6fs.c Sat May 10 19:25:43 2008 +++ /sys/src/cmd/tapefs/v6fs.c Sat May 10 19:25:43 2008 @@ -85,7 +85,7 @@ continue; f = iget(ino); strncpy(name, dp->name, V6NAMELEN); - name[V6NAMELEN+1] = '\0'; + name[V6NAMELEN] = '\0'; f.name = name; popfile(r, f); } --- /sys/src/cmd/tapefs/v10fs.c Sat May 10 19:25:44 2008 +++ /sys/src/cmd/tapefs/v10fs.c Sat May 10 19:25:43 2008 @@ -90,7 +90,7 @@ continue; f = iget(ino); strncpy(name, dp->name, VNAMELEN); - name[VNAMELEN+1] = '\0'; + name[VNAMELEN] = '\0'; f.name = name; popfile(r, f); } --- /sys/src/cmd/tapefs/32vfs.c Sat May 10 19:25:44 2008 +++ /sys/src/cmd/tapefs/32vfs.c Sat May 10 19:25:44 2008 @@ -93,7 +93,7 @@ continue; f = iget(ino); strncpy(name, dp->name, VNAMELEN); - name[VNAMELEN+1] = '\0'; + name[VNAMELEN] = '\0'; f.name = name; popfile(r, f); } --- /sys/src/cmd/troff/t10.c Sat May 10 19:25:45 2008 +++ /sys/src/cmd/troff/t10.c Sat May 10 19:25:44 2008 @@ -77,7 +77,7 @@ ics = EM; /* insertion character space */ for (i = 0; i < (NTAB - 1) && DTAB * (i + 1) < TABMASK; i++) tabtab[i] = DTAB * (i + 1); - tabtab[NTAB] = 0; + tabtab[NTAB-1] = 0; pl = 11 * INCH; /* paper length */ po = PO; /* page offset */ spacesz = SS;