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

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Mon Mar 7 15:18:00 GMT 2011


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?

cgf



More information about the Cygwin-developers mailing list