diff options
author | Ricardo Branco <rbranco@suse.de> | 2024-04-24 05:29:46 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2024-04-24 05:33:26 +0000 |
commit | cae336280b0d7ad3d49788c5fc0986f91328eb50 (patch) | |
tree | 8ead2eb1c4b9c95fe569fd1d657aa7b807c5d416 /contrib | |
parent | feabaf8d5389d43b404aacfcd3298bfed94a41ab (diff) | |
parent | e8ec4b5d1202d935bcc6ed75c361b618e8da627f (diff) | |
download | src-cae336280b0d7ad3d49788c5fc0986f91328eb50.tar.gz src-cae336280b0d7ad3d49788c5fc0986f91328eb50.zip |
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
MFC after: 3 days
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/less/ch.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/contrib/less/ch.c b/contrib/less/ch.c index fd53b2d66e38..51045438a296 100644 --- a/contrib/less/ch.c +++ b/contrib/less/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 @@ -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) { |