This is the mail archive of the cygwin-developers 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: [Fwd: Re: Problems with Cygwin-1.7.8 (or snapshot) and TeXLive 2010]

On Mar  7 15:40, Christopher Faylor wrote:
> On Mon, Mar 07, 2011 at 08:17:09PM +0100, Corinna Vinschen wrote:
> >On Mar  7 16:45, Corinna Vinschen wrote:
> >> On Mar  7 10:18, Christopher Faylor wrote:
> >> > This is one of those functions which has a __stdcall only in the header
> >> > file and not in the .cc file.  I know it's grasping at straws but did you
> >> > try adding all of the appropriate parameters to the .cc file?
> >> 
> >> Yes.  I tried that, too, just like to remove it entirely, as well as
> >> to remove the regparm stuff.  Nothing changes the fact that I get a
> >> 487 error.
> >
> >I know what we can do.  We can simply remove support for XP.  That
> >would solve this issue once and for all!
> It would be rather odd to continue to support NT4, and W2K while dropping XP
> but, what the heck.
> cgf
> (Actually, I still kinda like XP)

Amazing, I found a workaround!

After lots of weird tests to figure out why this happens, I found out
that the problem had nothing to do with the additional parameter in the
first place.  I could make it work by changing the conditional

  if (justcreated)


  if (1)

But it also worked with really crazy conditionals like

  if (fh != &pc)

After some mulling it occured to me that the common denominator was the
fact that it always worked if the get_file_sd function always used
GetSecurityInfo, while it failed if it used NtQuerySecurityObject by
default and GetSecurityInfo only for newly created files.

So I had another crazy idea.  What if XP keeps some security descriptor
cache which uses the information formerly collected for the parent
directories?  What if the cache doesn't grok it if the parent information
has been fetched using the native NtQuerySecurityObject function?

As far fetched as it sounds, I tried this:

  if (justcreated || pc.isdir ())

So GetSecurityInfo is used on newly created files and on all
directories.  And now it works on XP again!  Hurray!

I'm going to test this some more, but I guess it's a good start at least.


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

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