From 09d95477765d3941aacb61c97f76ee94301b8faa Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 12 Feb 2016 08:13:06 -0800 Subject: Fix wc -c optimization. Check the fstat(2) return value rather than read uninitialized memory if it failed, and add a special case for files that claim to be zero-length but aren't (as is common in /proc on Linux). --- toys/posix/wc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'toys/posix/wc.c') diff --git a/toys/posix/wc.c b/toys/posix/wc.c index 62d1f7a0..e7afc813 100644 --- a/toys/posix/wc.c +++ b/toys/posix/wc.c @@ -53,8 +53,8 @@ static void do_wc(int fd, char *name) if (toys.optflags == FLAG_c) { struct stat st; - fstat(fd, &st); - if (S_ISREG(st.st_mode)) { + // On Linux, files in /proc often report their size as 0. + if (!fstat(fd, &st) && S_ISREG(st.st_mode) && st.st_size > 0) { lengths[2] = st.st_size; goto show; } -- cgit v1.2.3