ntdll: Keep a valid DOS name if the initial current directory is a Unix dir.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48114
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2019-11-28 19:16:56 +01:00
parent 1902ab4d85
commit f206081241
1 changed files with 11 additions and 2 deletions

View File

@ -622,8 +622,17 @@ static void get_current_directory( UNICODE_STRING *dir )
if (!wine_unix_to_nt_file_name( &unix_name, &nt_name ))
{
/* skip the \??\ prefix */
if (nt_name.Length > 6 * sizeof(WCHAR*) && nt_name.Buffer[5] == ':')
{
dir->Length = nt_name.Length - 4 * sizeof(WCHAR);
memcpy( dir->Buffer, nt_name.Buffer + 4, dir->Length );
}
else /* change \??\ to \\?\ */
{
dir->Length = nt_name.Length;
memcpy( dir->Buffer, nt_name.Buffer, dir->Length );
dir->Buffer[1] = '\\';
}
RtlFreeUnicodeString( &nt_name );
}
}