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: [ANNOUNCEMENT] Updated: Cygwin 2.2.0-1

On Aug  5 11:09, Thomas Wolff wrote:
> Am 05.08.2015 um 09:54 schrieb Corinna Vinschen:
> >On Aug  4 20:53, Achim Gratz wrote:
> >>Warren Young writes:
> >>>Hereâs an interesting experiment to try on your non-Cygwin POSIX boxes:
> >>>
> >>>     $ HOME=/dfjkshkds bash -l
> >>>     $ echo $HOME
> >>>
> >>>Guess what it prints.
> >>>
> >>>Hint: It isnât the second-to-last field in /etc/passwd. :)
> >This is correct behaviour, of course.
> >
> >>>Spoiler: Apparently Cygwin is already doing the standard thing.
> >No, it's not.  Or, to phrase it a bit differently, it doesn't perform
> >thr action it was supposed to do.  My testing seemed to be a teeny bit
> >half-hearted...
> >
> >The problem the fix was *supposed* to fix (but it didn't) was to disallow
> >incoming $HOME values which are non-POSIX or non-absolute paths.  These
> >$HOME values should be disregarded.
> Why?
> >So the idea was:
> >
> >   set HOME=foo		<- ignored, set HOME from passwd DB entry
> >   set HOME=C:/foo	<- same
> No, please don't!
> >   set HOME=//foo/bar	<- same
> >   set HOME=/foo/bar	<- valid, taken
> >
> >Right now, when started from a non-Cygwin process, Cygwin takes the
> >value of $HOME and simply calls the Win32->POSIX conversion function.
> >It does so for a long time, but is that right?  Especially if %HOME% is
> >a non-absolute == relative path, the resulting POSIX value of $HOME
> >depends on the current directory when starting Cygwin.
> Other POSIX systems don't handle this situation well either, so I don't see
> a need to act here.

Other POSIX systems don't usually get a broken path.  The path is set
by the login process with the value taken from the passwd DB.  That's
what should be the default for Cygwin processes started from non-Cygwin
processes as well.  Of course Cygwin has to use $HOME because it could
be set for a reason.  But typically we don't need $HOME from Win32
processes, unless it's propagated from another Cygwin parent process.

The general idea is to make sure the passwd DB contains the correct
home dir and then use that.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgphkgMxIsAbX.pgp
Description: PGP signature

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