diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-07-09 02:38:01 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2000-07-09 02:38:01 +0000 |
commit | 440fe9e7641769733e392f17815cd2861e48463c (patch) | |
tree | cb8487f8fa2c96a8bd977b554a0c26568286e254 | |
parent | 0dcb85e6c56551fd0562ed9b63a3d87963eee51e (diff) | |
download | busybox-w32-440fe9e7641769733e392f17815cd2861e48463c.tar.gz busybox-w32-440fe9e7641769733e392f17815cd2861e48463c.tar.bz2 busybox-w32-440fe9e7641769733e392f17815cd2861e48463c.zip |
Fix a bug in get_line_from_file. If the length of the line is (GROWBY * n) +
GROWBY - 1, then it writes the null character just after the buffer. Yipe.
Fix thanks to Matt Kraai <kraai@alumni.carnegiemellon.edu> Thanks Matt!
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@786 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r-- | utility.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1616,7 +1616,7 @@ extern char *get_line_from_file(FILE *file) | |||
1616 | if (ch == EOF) | 1616 | if (ch == EOF) |
1617 | break; | 1617 | break; |
1618 | /* grow the line buffer as necessary */ | 1618 | /* grow the line buffer as necessary */ |
1619 | if (idx > linebufsz-1) | 1619 | if (idx > linebufsz-2) |
1620 | linebuf = realloc(linebuf, linebufsz += GROWBY); | 1620 | linebuf = realloc(linebuf, linebufsz += GROWBY); |
1621 | linebuf[idx++] = (char)ch; | 1621 | linebuf[idx++] = (char)ch; |
1622 | if ((char)ch == '\n') | 1622 | if ((char)ch == '\n') |