[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18621: [BUG] wc -c incorrectly counts bytes in /sys
From: |
Paul Eggert |
Subject: |
bug#18621: [BUG] wc -c incorrectly counts bytes in /sys |
Date: |
Fri, 03 Oct 2014 11:47:49 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1 |
On 10/03/2014 11:26 AM, Jim Meyering wrote:
That looks like a fine fix.
Unfortunately that fix would make 'wc -c' waaaaay slower for a file that
consists entirely of a big hole.
How about if we change usable_st_size to return false for these proc
files, with a heuristic as tight as we can make it, and to have
coreutils check usable_st_size in more places. Something like this,
perhaps:
/* Return a boolean indicating whether SB->st_size is correct. */
static inline bool
usable_st_size (struct stat const *sb)
{
if (S_ISREG (sb->st_mode))
{
/* proc files like /sys/kernel/vmcoreinfo are weird: their
st_size values do not reflect what's actually in them.
The following heuristic attempts to catch proc files without
catching many regular files that just happen to have the same
signature. */
return ! (sb->st_uid == 0 && sb->st_gid == 0 && sb->st_blocks == 0
&& sb->st_size == ST_BLKSIZE (*sb));
}
return (S_ISLNK (sb->st_mode) || S_TYPEISSHM (sb) || S_TYPEISTMO (sb));
}
and then review every place where coreutils currently uses st_size and
prepend a check for usable_st_size if needed.
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, George Shuklin, 2014/10/03
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Pádraig Brady, 2014/10/03
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Jim Meyering, 2014/10/03
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys,
Paul Eggert <=
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Pádraig Brady, 2014/10/03
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Paul Eggert, 2014/10/07
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Paul Eggert, 2014/10/07
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Pádraig Brady, 2014/10/07
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Jim Meyering, 2014/10/07
- bug#18621: [BUG] wc -c incorrectly counts bytes in /sys, Pádraig Brady, 2014/10/08