mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-26 07:55:01 +00:00
MFV: less: Do not trust st_size if it equals zero
This is a smaller version of upstream
1fafd968b48e5cea6c85f126d77071a8de707a55 to address the
issue that less not being able to operate on files
residing in pseudo-filesystems that advertize a zero
size value.
PR: bin/276133
(cherry picked from commit cae336280b
)
This commit is contained in:
parent
5da0bdbf28
commit
302d0acea8
@ -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
|
||||
@ -709,17 +708,9 @@ public void ch_flush(void)
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
ch_fsize = NULL_POSITION;
|
||||
ch_flags &= ~CH_CANSEEK;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (lseek(ch_file, (off_t)0, SEEK_SET) == BAD_LSEEK)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user