diff options
author | Jim Meyering <meyering@redhat.com> | 2009-11-08 12:09:35 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-11-08 15:13:23 +0100 |
commit | 26c5fd742f9136e2ddbd4695a9172c3fa30ea260 (patch) | |
tree | 543a6dce95dc4ee7369720e748600d65f4c186fb /lib/utimens.c | |
parent | 7becd9d708425924f3a402fdd3c6e18ba2a7e4e3 (diff) | |
download | gnulib-26c5fd742f9136e2ddbd4695a9172c3fa30ea260.tar.gz |
utimens: remove invalid futimesat call
* lib/utimens.c (fdutimens) [HAVE_FUTIMESAT]: Remove invalid futimesat
call. It used the file descriptor of the target file as the DIR_FD
parameter and NULL as the file name. That caused failure with
errno == EFAULT on FreeBSD-8.0-rc2.
Diffstat (limited to 'lib/utimens.c')
-rw-r--r-- | lib/utimens.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/utimens.c b/lib/utimens.c index ce759a1d09..bd482d7d01 100644 --- a/lib/utimens.c +++ b/lib/utimens.c @@ -280,9 +280,9 @@ fdutimens (char const *file, int fd, struct timespec const timespec[2]) } else { - /* If futimesat or futimes fails here, don't try to speed things - up by returning right away. glibc can incorrectly fail with - errno == ENOENT if /proc isn't mounted. Also, Mandrake 10.0 + /* If futimesat (above) or futimes fails here, don't try to speed + things up by returning right away. glibc can incorrectly fail + with errno == ENOENT if /proc isn't mounted. Also, Mandrake 10.0 in high security mode doesn't allow ordinary users to read /proc/self, so glibc incorrectly fails with errno == EACCES. If errno == EIO, EPERM, or EROFS, it's probably safe to fail @@ -290,10 +290,7 @@ fdutimens (char const *file, int fd, struct timespec const timespec[2]) worth optimizing, and who knows what other messed-up systems are out there? So play it safe and fall back on the code below. */ -# if HAVE_FUTIMESAT - if (futimesat (fd, NULL, t) == 0) - return 0; -# elif HAVE_FUTIMES +# if HAVE_FUTIMES if (futimes (fd, t) == 0) return 0; # endif |