mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
[KERNEL32]
Fix handling of trailing backslash. Patch by Thomas Faber. ROSTESTS-135 svn path=/trunk/; revision=73925
This commit is contained in:
@@ -104,6 +104,7 @@ HANDLE WINAPI CreateFileW (LPCWSTR lpFileName,
|
||||
ULONG FileAttributes, Flags = 0;
|
||||
PVOID EaBuffer = NULL;
|
||||
ULONG EaLength = 0;
|
||||
BOOLEAN TrailingBackslash;
|
||||
|
||||
if (!lpFileName || !lpFileName[0])
|
||||
{
|
||||
@@ -220,6 +221,13 @@ HANDLE WINAPI CreateFileW (LPCWSTR lpFileName,
|
||||
}
|
||||
|
||||
TRACE("NtPathU \'%wZ\'\n", &NtPathU);
|
||||
|
||||
TrailingBackslash = FALSE;
|
||||
if (NtPathU.Length >= sizeof(WCHAR) &&
|
||||
NtPathU.Buffer[NtPathU.Length / sizeof(WCHAR) - 1])
|
||||
{
|
||||
TrailingBackslash = TRUE;
|
||||
}
|
||||
|
||||
if (hTemplateFile != NULL)
|
||||
{
|
||||
@@ -350,6 +358,11 @@ HANDLE WINAPI CreateFileW (LPCWSTR lpFileName,
|
||||
{
|
||||
SetLastError( ERROR_FILE_EXISTS );
|
||||
}
|
||||
else if (Status == STATUS_FILE_IS_A_DIRECTORY &&
|
||||
TrailingBackslash)
|
||||
{
|
||||
SetLastError(ERROR_PATH_NOT_FOUND);
|
||||
}
|
||||
else
|
||||
{
|
||||
BaseSetLastNTError (Status);
|
||||
|
||||
Reference in New Issue
Block a user