bug#6268: Suggestion: truncate should allow -r and -s options together (original) (raw)

[Top][All Lists]


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Pádraig Brady
Subject: bug#6268: Suggestion: truncate should allow -r and -s options together
Date: Sat, 29 May 2010 01:03:08 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3

On 28/05/10 14:17, Pádraig Brady wrote:

> what about --ref=non-regular-file ? > > Perhaps truncate should refuse to use stsize info from > a non-regular file. > > Here's a pathological example: > > $ echo abcdefgh > bar > $ strace -e ftruncate ./truncate --ref=/dev/tty bar > ftruncate(3, 0) = 0 > $ wc -c bar > 0 bar > > It's obvious that such an example is not likely in practice, but since > currently truncate's --ref uses stat, it would follow a symlink, too. > > For a directory you'd get unportable and probably surprising results. > Using such a reference size deserves at least a warning.

Yes that's safer. stsize is only defined for regular files (or shared mem), so I'll only allow regular files. I'll push a separate patch soon.

Since we're only referencing the size, there is the argument that we should be trying harder to get the size of block devices for example. There are portability issues with that though, and doing outside of truncate is easy enough, so I'll leave that for now.

I actually removed all ignoring of errors for non regular files, as well as not allowing one to reference st_size for non regular files.

I'll push the attached tomorrow sometime.

cheers, Pádraig.

Attachment: truncate-non-files.diff
Description: Text Data