diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 2314db392..27da34378 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2005-10-19 Christopher Faylor + + * times.cc (utimes): Only consider fds opened with write access. + 2005-10-19 Christopher Faylor * fhandler_disk_file.cc (fhandler_base::utimes_fs): Use existing handle diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc index cc4de9746..e4bcb8cef 100644 --- a/winsup/cygwin/times.cc +++ b/winsup/cygwin/times.cc @@ -452,7 +452,8 @@ utimes (const char *path, const struct timeval *tvp) cygheap_fdenum cfd; while (cfd.next () >= 0) - if (strcmp (cfd->get_win32_name (), win32) == 0) + if (cfd->get_access () & (FILE_WRITE_ATTRIBUTES | GENERIC_WRITE) + && strcmp (cfd->get_win32_name (), win32) == 0) { fh = cfd; fromfd = true;