Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-06-15 03:52:53 +0400
committerChristopher Faylor <me@cgf.cx>2005-06-15 03:52:53 +0400
commit0fc9cf11f84797e28168fbbc1d63a72fc50b7608 (patch)
tree8f6145fa93792600a210e76301fc0caf91d88099 /winsup
parentfbc0e572ce294782bdb13ff87ec5850b52a7b16f (diff)
* path.cc (path_conv::check): Always reset to FH_FS when component != 0 and
FH_NETDRIVE to fix problems with strict case checking.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/path.cc25
2 files changed, 16 insertions, 14 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 82b283bb4..574ca7d73 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2005-06-14 Christopher Faylor <cgf@timesys.com>
+
+ * path.cc (path_conv::check): Always reset to FH_FS when component != 0
+ and FH_NETDRIVE to fix problems with strict case checking.
+
2005-06-12 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::recvmsg): Avoid SEGV in OpenSSH
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 7ba5b51e7..1e315e492 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -886,22 +886,19 @@ out:
error = EROFS;
return;
}
+ else if (dev.devn == FH_NETDRIVE && component)
+ {
+ /* This case indicates a non-existant resp. a non-retrievable
+ share. This happens for instance if the share is a printer.
+ In this case the path must not be treated like a FH_NETDRIVE,
+ but like a FH_FS instead, so the usual open call for files
+ is used on it. */
+ dev.parse (FH_FS);
+ }
else if (isvirtual_dev (dev.devn) && fileattr == INVALID_FILE_ATTRIBUTES)
{
- if (dev.devn == FH_NETDRIVE && component)
- {
- /* This case indicates a non-existant resp. a non-retrievable
- share. This happens for instance if the share is a printer.
- In this case the path must not be treated like a FH_NETDRIVE,
- but like a FH_FS instead, so the usual open call for files
- is used on it. */
- dev.parse (FH_FS);
- }
- else
- {
- error = dev.devn == FH_NETDRIVE ? ENOSHARE : ENOENT;
- return;
- }
+ error = dev.devn == FH_NETDRIVE ? ENOSHARE : ENOENT;
+ return;
}
else if (!need_directory || error)
/* nothing to do */;