aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/join/join.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/join/join.c')
-rw-r--r--usr.bin/join/join.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/join/join.c b/usr.bin/join/join.c
index 14bbc4cd1a25..bfe526f67889 100644
--- a/usr.bin/join/join.c
+++ b/usr.bin/join/join.c
@@ -309,16 +309,16 @@ slurp(F)
}
if ((bp = fgetline(F->fp, &len)) == NULL)
return;
- if (lp->linealloc <= len) {
+ while (lp->linealloc <= len) {
lp->linealloc += 100;
if ((lp->line = realloc(lp->line,
lp->linealloc * sizeof(char))) == NULL)
enomem();
}
- bcopy(bp, lp->line, len);
+ bcopy(bp, lp->line, len+1);
/* Split the line into fields, allocate space as necessary. */
- token = bp;
+ token = lp->line;
lp->fieldcnt = 0;
while ((fieldp = strsep(&token, tabchar)) != NULL) {
if (spans && *fieldp == '\0')