This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unable to access forced mounts from /bin/sh


On Wed, Aug 24, 2005 at 07:03:21AM -0600, Eric Blake wrote:
>According to Eric Blake on 8/22/2005 6:09 AM:
>>>>Huh?  Strace shows that sh fails when trying to stat /a.  Does this,
>>>>perhaps, have something to do with bash switching to POSIX mode when
>>>>invoked as "sh"?
>> 
>> Yes it does.  I'll have to look into bash POSIX mode further, and decide
>> why cd only stat's intermediate paths in POSIX mode, to see if it warrants
>> a patch to bash.
>
>Sure enough, on 'cd -L', bash always checks for the existance of the
>entire path, then checks for posixly_correct, then tries chdir(); so bash
>succeeds where sh fails when an intermediate path name didn't exist.  A
>patch will be provided in bash-3.0-12 whereby if chdir() can succeed even
>though intermediate components don't exist, then bash will allow it even
>in posix mode.  My understanding of cygwin is that since //, /proc, and
>/cygdrive always exist, and /dev has no subdirectories (and in the latest
>snapshot, even /dev exists - thanks cgf!), the only time chdir(dir) can
>succeed when stat(basename(dir)) fails is with 2-level forced mount points.

"/cygdrive" (please notice the quotes and ponder what they might mean),
/proc, and /dev now show up in root, regardless of whether a "mkdir" has
been done on them but it's not a perfect solution since one can do this:

  cd /
  mkdir dev
  rmdir dev
  ls dev
  ls: reading directory dev: No such file or directory
  ls
  ... dev ...

No matter what you do, "ls /dev" will either show up as a nonexistent or
empty directory.  Populating the /dev directory is not trivial,
unfortunately.

You can play similar games "/cygdrive", too, although 'ls "/cygdrive"'
will do something useful, at least.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]