diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ec55374af..50a09c106 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2007-07-17 Corinna Vinschen + + * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting + cfd->nohandle where it won't crash. + 2007-07-16 Corinna Vinschen * cygheap.h (cygheap_user::curr_imp_token): Rename from current_token. diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 34d95bc6b..17c93be9a 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -1566,9 +1566,7 @@ fhandler_disk_file::opendir (int fd) dir->__d_internal = (unsigned) new __DIR_mounts (pc.normalized_path); d_cachepos (dir) = 0; - if (pc.iscygdrive ()) - cfd->nohandle (true); - else + if (!pc.iscygdrive ()) { if (fd < 0) { @@ -1623,6 +1621,8 @@ fhandler_disk_file::opendir (int fd) time on exit. Nasty, nasty... */ cfd = this; dir->__d_fd = cfd; + if (pc.iscygdrive ()) + cfd->nohandle (true); } set_close_on_exec (true); dir->__fh = this;