Mercurial > hg > octave-lojdl > gnulib-hg
changeset 12256:f704a98798c2
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.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Sun, 08 Nov 2009 12:09:35 +0100 |
parents | 83ddd76ac091 |
children | 37417e58ec13 |
files | ChangeLog lib/utimens.c |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-11-08 Jim Meyering <meyering@redhat.com> + + utimens: remove invalid futimesat call + * lib/utimens.c (fdutimens): 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 + 2009-11-07 Eric Blake <ebb9@byu.net> fflush, freadseek: use fseeko, not fseek
--- a/lib/utimens.c +++ b/lib/utimens.c @@ -280,9 +280,9 @@ } 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 @@ 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