truncate: don't leak a file descriptor with --ref=PIPE
authorJim Meyering <meyering@redhat.com>
Sat, 4 Aug 2012 09:02:40 +0000 (11:02 +0200)
committerJim Meyering <meyering@redhat.com>
Sat, 4 Aug 2012 10:27:20 +0000 (12:27 +0200)
commitcbd1cffa3eb9e6e5ca82ec67d3c4211a019dd1ed
tree3cbd529aad8b0af8c2f638dee9f07857fdeff9f2
parent4bee223d96fe34fd5290575ddb6eba7c9c7d7418
truncate: don't leak a file descriptor with --ref=PIPE

* src/truncate.c (main): For a user who makes the mistake of
using a non-seekable file as a reference for the desired length,
truncate would open that file, attempt to seek to its end, but
upon seek failure would neglect to close the file descriptor.
Close the file descriptor even when lseek fails.
In addition, ignore failure to close that reference FD, since as
long as the lseek succeeds, a close failure doesn't matter.
Coverity spotted the potential FD leak.

Improved-by: Pádraig Brady.
src/truncate.c