* src/wc.c (wc): Use off_t rather than size_t
when calculating where to seek to, so that
we don't seek to a too low offset on systems
where size_t < off_t, which would result in
many read() calls to determine the file size.
* tests/misc/wc-proc.sh: Add a test case
sufficient for 32 bit systems at least.
* NEWS: Mention the bug fix.
Reported at https://bugs.debian.org/
1027101
and the system supported set of valid speeds.
[This bug was present in "the beginning".]
+ `wc -c` will again efficiently determine the size of large files
+ on all systems. It no longer redundantly reads data from certain
+ sized files larger than SIZE_MAX.
+ [bug introduced in coreutils-8.24]
+
** Changes in behavior
'cp --reflink=always A B' no longer leaves behind a newly created
if (! fstatus->failed && usable_st_size (&fstatus->st)
&& 0 <= fstatus->st.st_size)
{
- size_t end_pos = fstatus->st.st_size;
+ off_t end_pos = fstatus->st.st_size;
if (current_pos < 0)
current_pos = lseek (fd, 0, SEEK_CUR);
EOF
compare exp out || fail=1
+# Ensure we don't read too much when reading,
+# as was the case on 32 bit systems
+# from coreutils-8.24 to coreutils-9.1
+if timeout 10 truncate -s1T do_read; then
+ timeout 10 wc -c do_read || fail=1
+fi
+
Exit $fail