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] TEST RELEASE: Cygwin 2.4.0-0.4


On Nov 29 18:10, Corinna Vinschen wrote:
> On Nov 29 15:10, Kacper Michajlow wrote:
> > 2015-11-29 13:59 GMT+01:00 Corinna Vinschen <corinna-cygwin@cygwin.com>:
> > > Status 0xC0000078 aka Win32 error 1337 means "invalid SID".  And the
> > > SID 1-5-32-1001 is in fact invalid.  The S-1-5-32 prefix denotes a builtin
> > > account, but the RID 1001 is invalid for a builtin group.  1001 is the
> > > RID of your user account, though, but that would be prefixed by the SID
> > > of your machine, which looks like S-1-5-21-XXXXXXXX-YYYYYYYY-ZZZZZZZZ.
> > > I don't see how this broken SID came into life, unless your /etc/passwd
> > > and/or /etc/group files are broken (hand edited perhaps?).
> > 
> > I guess I only changed shell to zsh in /etc/passwd, but no other
> > changes were made. So I have no idea how they could get corrupted
> > either.
> 
> They aren't.  There is no 1-5-32-1001 SID in those files and both files
> look entirely insuspicious.  Given that Cygwin doesn't create any such
> SID from scratch, I'm totally puzzled where this SID is coming from.
> Your mkdir trace output doesn't show this SID anywhere else either.
> This definitely requires more debugging...

I think I found it.  The problem was the handling of Microsoft Accounts
on machines still using passwd and group files.  And the additional
group entry for the user with a gid different from the user's uid was
required to uncover this problem.  This is fortunately a border case,
but the fix seemed to be simple so I applied it and added a comment
so as not to forget why we have to do that.

> > Works.
> 
> Ok, that's good to know.  Now I just have to find out where this
> weird SID was created :-P

That fall into place after I realized what was happening.  The gid
1001 didn't exist in /etc/group so Cygwin calls the function to
evaluate a SID from a computed UID/GID, and this in turn generated
the invalid 1-5-32-1001 SID.  WHile writing this I realized that
I should harden this part of the code to accept only RIDs < 1000...

> > I personally am fine with abandoning /etc/passwd and /etc/group. This
> > is good enough solution for me. Though there might be other people
> > with the same issue.
> 
> This seems to be a bug in Cygwin, and with the content of your files I
> finally managed to reproduce the issue.  I'm planning to debug this next
> week and, hopefully, come up with a patch.  It would be nice if you
> could do another test then in your environment :}

I just uploaded new developer snapshots to https://cygwin.com/snapshots/
and a new test release 2.4.0-0.6 with the aforementioned patch.  Please
give any of them a try.


Thanks,
Corinna

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

Attachment: pgpO7n90NYovQ.pgp
Description: PGP signature


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