From 7c3e6be6d70a944fa2cda1f256d01c0fa8928f0b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 3 Apr 2014 09:42:53 -0700 Subject: shred: shred one block even for empty files * src/shred.c (do_wipefd): Shred one block of empty regular files. This reverts an unintended part of the previous change. --- src/shred.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/shred.c b/src/shred.c index 0a53a16be..732d3afb1 100644 --- a/src/shred.c +++ b/src/shred.c @@ -887,8 +887,11 @@ do_wipefd (int fd, char const *qname, struct randint_source *s, if (! flags->exact) { + /* Round up to the nearest blocksize. If the file is + empty output a block anyway, in case the file system + stores small files in the inode. */ off_t remainder = size % ST_BLKSIZE (st); - if (remainder != 0) + if (remainder != 0 || size == 0) { off_t size_incr = ST_BLKSIZE (st) - remainder; if (! INT_ADD_OVERFLOW (size, size_incr)) -- cgit v1.2.3-70-g09d2