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: mkdir -p and network drives


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Christopher Faylor on 5/7/2005 9:43 AM:
>>Which Bash bug is that?
> 
> Bash is the most important program for which 'that chdir("//") is
> currently no different from chdir("/")'.

Is that a bug in bash or in cygwin, though?  The comments for cygwin
bash-2.05b-17 mention that a patch from Corinna Vinschen was applied to
avoid turning '/' into '//' when converting/checking path.  And `strace
bash -c 'chdir //' shows:

   32 20141553 [main] bash 1564 mount_info::conv_to_posix_path: // =
conv_to_posix_path (//)
  112 20141665 [main] bash 1564 chdir: dir '//'
   29 20141694 [main] bash 1564 normalize_posix_path: src //
   30 20141724 [main] bash 1564 normalize_posix_path: / =
normalize_posix_path (//)
   29 20141753 [main] bash 1564 mount_info::conv_to_win32_path:
conv_to_win32_path (/)
   32 20141785 [main] bash 1564 set_flags: flags: binary (0x2)
   65 20141850 [main] bash 1564 mount_info::conv_to_win32_path: src_path
/, dst c:\cygwin, flags 0xA, rc 0
   89 20141939 [main] bash 1564 symlink_info::check: not a symlink
   32 20141971 [main] bash 1564 symlink_info::check: 0 = symlink.check
(c:\cygwin, 0x22E6D0) (0xA)
   32 20142003 [main] bash 1564 path_conv::check: this->path(c:\cygwin),
has_acls(1)
   76 20142079 [main] bash 1564 chdir: 0 = chdir() cygheap->cwd.posix '/'
native 'c:\cygwin'

And this simple trace backs that up:

$ cd //
$ pwd
//
$ /bin/pwd
/

So it was the cygwin normalization code that turned '//' into '/', while
bash thinks the current dir is '//'.  What breaks if the cygwin chdir()
normalization code is changed to not turn '//' into '/'?

> Our track record for getting cygwin fixes into bash has been mixed.
> I believe that someone has tried to get this fixed previously, along
> with an even more serious problem with bash getting confused by
> quick pid reuse but I believe that both problem still exist in
> bash 3.0.

Does bash 3.0 still have the bug that Corinna's patch to 2.05b fixed?  At
any rate, there is no official cygwin bash 3.0, because there has still
been no volunteer to step up and produce a cygwin compilation of bash.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCfPX184KuGfSFAYARAtRIAKDYJxaPVMFBvTBky1Pn0Ql2C9YM8wCggSWm
eGq3zgHS7Slnz12CrIsApTs=
=/1q1
-----END PGP SIGNATURE-----

--
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]