summaryrefslogtreecommitdiff
path: root/lib/utimens.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2009-11-08 12:09:35 +0100
committerJim Meyering <meyering@redhat.com>2009-11-08 15:13:23 +0100
commit26c5fd742f9136e2ddbd4695a9172c3fa30ea260 (patch)
tree543a6dce95dc4ee7369720e748600d65f4c186fb /lib/utimens.c
parent7becd9d708425924f3a402fdd3c6e18ba2a7e4e3 (diff)
downloadgnulib-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.c11
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