3.0.7(0.338/5/3): Possible reference to Developer's instances of dev files in deployed build

Ken Brown kbrown@cornell.edu
Wed Dec 4 21:41:00 GMT 2019


On 12/4/2019 4:02 PM, Wilfed Olaf Sulla via cygwin wrote:
>> On 12/4/2019 2:26 PM, Wilfed Olaf Sulla via cygwin wrote:
>>>     692   83364 [main] ls 15015 normalize_posix_path: src Z:\
>>>      35   83399 [main] ls 15015 normalize_win32_path: Z:\ = normalize_win32_path (Z:\)
>>>      24   83423 [main] ls 15015 mount_info::conv_to_win32_path: conv_to_win32_path (Z:)
>>>      24   83447 [main] ls 15015 mount_info::conv_to_win32_path: src_path Z:, dst Z:, flags 0x0, rc 0
>>>    6738   90185 [main] ls 15015 symlink_info::check: 0xC0000034 = NtCreateFile (\??\Z:\)
>>>     214   90399 [main] ls 15015 __assert_func: assertion "p >= path" failed:
>>
>> I don't have time to check this carefully at the moment, but it looks like
>> what's happening is the following:
>>
>> path_conv::check is called on 'Z:\'.  It strips the trailing backslash and calls
>> mount_info::conv_to_win32_path on 'Z:'.  NtCreateFile fails with
>> STATUS_OBJECT_NAME_NOT_FOUND, which triggers the code containing the assertion.
>> The assertion fails because 'Z:' doesn't contain a backslash.
>>
>> I'll have time tomorrow to think about how to best fix this, if Corinna doesn't
>> get to it first.
> Yes I noticed that, but it also strips the trailing back-slash for all
> of the other virtual drives at the same stage in the checks on them as
> well.

The difference is that NtCreateFile doesn't fail with 
STATUS_OBJECT_NAME_NOT_FOUND in the other cases, so the code containing the 
assertion doesn't get run.

BTW, I just tried the following on my system:

$ ls z:\\
ls: cannot access 'z:\': No such file or directory

strace shows that NtCreateFile fails with STATUS_OBJECT_PATH_NOT_FOUND in this 
case, so again the code containing the assertion is not run.

To be continued...

Ken

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list