From a6e8e3a3e116f2cdaa452eb66032d912092d0026 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 25 Jul 2012 18:35:36 +0200 Subject: tail: avoid misleading diagnostic upon fstat failure * src/tail.c (check_fspec): Save fstat-induced errno *before* calling close_fd, not after. Otherwise, the close could well clobber the global errno, making tail print an invalid diagnostic. This could happen only with tail -f, and even then, only when a valid file descriptor were to provoke fstat failure. --- src/tail.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/tail.c b/src/tail.c index 29ddabd62..1935605ef 100644 --- a/src/tail.c +++ b/src/tail.c @@ -1276,9 +1276,9 @@ check_fspec (struct File_spec *fspec, int wd, int *prev_wd) if (fstat (fspec->fd, &stats) != 0) { + fspec->errnum = errno; close_fd (fspec->fd, name); fspec->fd = -1; - fspec->errnum = errno; return; } -- cgit v1.2.3-70-g09d2