[Fwd: Re: Problems with Cygwin-1.7.8 (or snapshot) and TeXLive 2010]

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Mar 7 15:45:00 GMT 2011


On Mar  7 10:18, Christopher Faylor wrote:
> On Mon, Mar 07, 2011 at 02:50:38PM +0100, Corinna Vinschen wrote:
> >> On Mar  7 11:11, Corinna Vinschen wrote:
> >> [...]
> >> Ok, I found a simpler testcase.  If you have the texmf-bin package
> >> installed, just try this:
> >> 
> >>   $ cd /var/lib/texmf/web2c
> >>   $ rm -f aleph.*
> >>   $ aleph -ini -jobname=aleph -progname=aleph *aleph.ini > /dev/null
> >>   $ ls -l aleph.*
> >> 
> >> and you'll see that the aleph.* files have not 0644, but other, wrong
> >> permissions.
> >> 
> >> As I expected the aforementioned patch is the culprit, but in an
> >> entirely unexpected way.  Basically, the patch adds a bool parameter to
> >> the functions get_file_sd.  If it's true, the Win32 function
> >> GetSecurityInfo is called, just like before, if it's false, the native
> >> NT function NtQuerySecurityObject is called instead.
> >> 
> >> Now, for some reason, on XP, but not on Windows 7, the call to
> >> GetSecurityInfo suddenly fails with an error 487, ERROR_INVALID_ADDRESS.
> >> Apart from the fact that it's not always called anymore, nothing has
> >> changed in the way GetSecurityInfo is called!
> >> 
> >> I tried various changes, but to no avail.  I have not the faintest clue
> >> why GetSecurityInfo suddenly fails on XP.  The only way I can get
> >> GetSecurityInfo to work on XP is by removing the additional bool
> >> parameter :-(
> >
> >Can anybody explain to me what happened lately?  Is it a coincidence
> >that we had (at least?) two changes in the last couple of months which
> >trigger a 487 error on XP for no apparent reason?
> >
> >How is it possible that an additional parameter to the calling function
> >can trigger an ERROR_INVALID_ADDRESS in a subsequently called Win32
> >function, even if this parameter is just a bool value not eve used in
> >the Win32 call?!?
> >
> >Just for the records, I tested to remove the __stdcall and the regparm
> >from get_file_sd.  I tried to replace the type bool with the Win32
> >typer BOOL and the native NT type BOOLEAN.  I rearranged the code.
> >Nothing helps, except removing the additional parameter to get_file_sd.
> 
> 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.


Corinna

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



More information about the Cygwin-developers mailing list