mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 21:05:08 +00:00
less: Do not trust st_size if it equals zero
This commit is contained in:
parent
448d114b25
commit
e8ec4b5d12
9
ch.c
9
ch.c
|
@ -700,7 +700,6 @@ public void ch_flush(void)
|
|||
ch_block = 0; /* ch_fpos / LBUFSIZE; */
|
||||
ch_offset = 0; /* ch_fpos % LBUFSIZE; */
|
||||
|
||||
#if HAVE_PROCFS
|
||||
/*
|
||||
* This is a kludge to workaround a Linux kernel bug: files in
|
||||
* /proc have a size of 0 according to fstat() but have readable
|
||||
|
@ -708,18 +707,10 @@ public void ch_flush(void)
|
|||
* Force them to be non-seekable here.
|
||||
*/
|
||||
if (ch_fsize == 0)
|
||||
{
|
||||
struct statfs st;
|
||||
if (fstatfs(ch_file, &st) == 0)
|
||||
{
|
||||
if (st.f_type == PROC_SUPER_MAGIC)
|
||||
{
|
||||
ch_fsize = NULL_POSITION;
|
||||
ch_flags &= ~CH_CANSEEK;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (lseek(ch_file, (off_t)0, SEEK_SET) == BAD_LSEEK)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue