Mercurial > hg > octave-nkf > gnulib-hg
changeset 6440:d811a65bfa7a
* lib/utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]:
Don't assume that futimes failing means we mustfail.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sun, 30 Oct 2005 21:30:15 +0000 |
parents | 3fd547210013 |
children | 649a703475b8 |
files | lib/ChangeLog lib/utimens.c |
diffstat | 2 files changed, 15 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2005-10-30 Paul Eggert <eggert@cs.ucla.edu> + + Fix porting problem reported by Theodoros V. Kalamatianos. + * utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]: + Don't assume that futimes failing means we mustfail. + 2005-10-29 Paul Eggert <eggert@cs.ucla.edu> * getcwd.c (__getcwd): Don't assume that system calls after readdir
--- a/lib/utimens.c +++ b/lib/utimens.c @@ -99,17 +99,15 @@ if (futimes (fd, t) == 0) return 0; - /* On GNU/Linux without the futimes syscall and without /proc - mounted, glibc futimes fails with errno == ENOENT. Fall back - on utimes if we get a weird error number like that. */ - switch (errno) - { - case EACCES: - case EIO: - case EPERM: - case EROFS: - return -1; - } + /* Don't worry about trying to speed things up by returning right + away here. glibc futimes 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 futimes incorrectly fails with errno == EACCES. If futimes + fails with errno == EIO, EPERM, or EROFS, it's probably safe to + fail right away, but these cases are rare enough that they're not + worth optimizing, and who knows what other messed-up systems are + out there? So play it safe and fall back on the code below. */ } # endif #endif