aboutsummaryrefslogtreecommitdiff
path: root/toys/posix
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2014-11-19 14:29:53 -0600
committerRob Landley <rob@landley.net>2014-11-19 14:29:53 -0600
commit159a7f1621eecf6cf3c2824ffb762a19bf5f7667 (patch)
tree24eaecf6bab6f36522033b8c4e47c8d84fb43ac6 /toys/posix
parent45bd6a2cd43ebd27e2696852959617704a8faafd (diff)
downloadtoybox-159a7f1621eecf6cf3c2824ffb762a19bf5f7667.tar.gz
Fix "tail -c 10" segfault spotted by Lukasz Szpakowski.
Once we've read through the initial TT.bytes backlog we discard the extra data, meaning we adjust the remaining amount each time so the overflow is zero bytes. We were doing the adjustment right, but not zeroing out the overflow counter after we did so.
Diffstat (limited to 'toys/posix')
-rw-r--r--toys/posix/tail.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/toys/posix/tail.c b/toys/posix/tail.c
index aba53180..e92c0446 100644
--- a/toys/posix/tail.c
+++ b/toys/posix/tail.c
@@ -164,6 +164,7 @@ static void do_tail(int fd, char *name)
}
list->data += bytes;
list->len -= bytes;
+ bytes = 0;
}
} else {
int len = new->len, count;