summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2009-10-08 11:13:45 +0000
committerEric Blake <eblake@redhat.com>2009-10-08 11:13:45 +0000
commit80636211bcb2137313d8af948578b3ce82bf3ac7 (patch)
tree72515baf8d9281576962e7f2e6cd9e84ae9d010d
parent8bd7bd3bc0987bb562fca5d8a361462c24235cbf (diff)
downloadcygnal-80636211bcb2137313d8af948578b3ce82bf3ac7.tar.gz
cygnal-80636211bcb2137313d8af948578b3ce82bf3ac7.tar.bz2
cygnal-80636211bcb2137313d8af948578b3ce82bf3ac7.zip
* fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc2
2 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 7cdb0c88d..6a90ac45f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-08 Eric Blake <ebb9@byu.net>
+
+ * fhandler_disk_file.cc (utimens_fs): Plug fd leak on EINVAL.
+
2009-10-07 Charles Wilson <cygwin@cwilson.fastmail.fm>
Additional pseudo-reloc-v2 support
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 99bbf8ba3..1e6a781e0 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -1310,6 +1310,8 @@ fhandler_base::utimens_fs (const struct timespec *tvp)
if ((tvp[0].tv_nsec < UTIME_NOW || tvp[0].tv_nsec > 999999999L)
|| (tvp[1].tv_nsec < UTIME_NOW || tvp[1].tv_nsec > 999999999L))
{
+ if (closeit)
+ close_fs ();
set_errno (EINVAL);
return -1;
}