]> err.no Git - util-linux/commit
tailf: fixed timing issue that could cause duplicate data output
authorDima Kogan <dkogan@cds.caltech.edu>
Sat, 14 Aug 2010 09:15:47 +0000 (02:15 -0700)
committerKarel Zak <kzak@redhat.com>
Fri, 20 Aug 2010 11:15:14 +0000 (13:15 +0200)
commit3a788d773b13078ce8c87247e7f5f556646203b3
treeac33c8860b57f6862004c344787b30589b4a5d5d
parent9695a7c653c5e1871f7bb78fa0e6ec8d4e74a83a
tailf: fixed timing issue that could cause duplicate data output

The issue is that in roll_file() we fstat() to find the file size, then read()
as much data as we can and then use the previously saved file size to mark our
position. The bug occurs if we read past the file size reported by fstat()
because more data has arrived while we were reading it. The attached patch uses
the current file position as the location marker instead, with some extra logic
to handle tailing truncated files.

[kzak@redhat.com: - fix coding style]

Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu>
Signed-off-by: Karel Zak <kzak@redhat.com>
text-utils/tailf.c