[comp.os.minix] diff for head.c

dlong@sdsu.UUCP (03/02/87)

Keywords:

The following is a diff for commands/head.c to hopefully fix a bug
that allows the buffer to overflow at EOF or lines longer than 256
characters.
----------------------------------------------------------------------

1a2
> /* Minor changes by: Dean Long 2/24/87 */
5a7
> #define LINE    256
8c10
< char lbuf[256];
---
> char lbuf[LINE];
58c60,61
<   while (n--) do_line();
---
>   /* Stop at EOF. -dl 2/24/87 */
>   while (n-- && do_line()) continue;
66c69,71
<   char c, *cp;
---
>   int c;
>   char *cp;
> 
68c73,76
<   while ( (c = getc(stdin)) != '\n') *cp++ = c;
---
> /* Stop at EOF or buffer full. -dl 2/24/87 */
>   while ((c = getc(stdin)) != '\n' && c != EOF && cp < lbuf + LINE - 2)
>     *cp++ = (char)c;
>   if (c == EOF) return 0;
71a80
>   return 1;
-- 
Dean Long
University of California, San Diego
sdcsvax!tiamat!dlong