mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-07 20:42:09 -05:00
sys: FspFsvolSetRenameInformation: correctly compute Suffix for SRV2 renames
This commit is contained in:
parent
26092211a8
commit
5fa631339d
@ -1161,10 +1161,16 @@ static NTSTATUS FspFsvolSetRenameInformation(
|
||||
else
|
||||
FspFileNameSuffix(&FileNode->FileName, &Remain, &Suffix);
|
||||
|
||||
Suffix.Length = Suffix.MaximumLength = (USHORT)Info->FileNameLength;
|
||||
Suffix.Length = (USHORT)Info->FileNameLength;
|
||||
Suffix.Buffer = Info->FileName;
|
||||
if (L'\\' == Suffix.Buffer[0])
|
||||
FspFileNameSuffix(&Suffix, &NewFileName, &Suffix);
|
||||
/* if there is a backslash anywhere in the NewFileName get its suffix */
|
||||
for (PWSTR P = Suffix.Buffer, EndP = P + Suffix.Length / sizeof(WCHAR); EndP > P; P++)
|
||||
if (L'\\' == *P)
|
||||
{
|
||||
Suffix.Length = (USHORT)((EndP - P - 1) * sizeof(WCHAR));
|
||||
Suffix.Buffer = P + 1;
|
||||
}
|
||||
Suffix.MaximumLength = Suffix.Length;
|
||||
|
||||
if (!FspFileNameIsValid(&Remain, 0, 0) || !FspFileNameIsValid(&Suffix, 0, 0))
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ BOOLEAN FspFileNameIsValid(PUNICODE_STRING Path, PUNICODE_STRING StreamPart, PUL
|
||||
/* if StreamPart is not NULL, StreamType must also be not NULL */
|
||||
ASSERT(0 == StreamPart || 0 != StreamType);
|
||||
|
||||
if (0 != Path->Length % sizeof(WCHAR))
|
||||
if (0 == Path->Length || 0 != Path->Length % sizeof(WCHAR))
|
||||
return FALSE;
|
||||
|
||||
PWSTR PathBgn, PathEnd, PathPtr, StreamTypeStr = 0;
|
||||
|
@ -37,10 +37,10 @@ for %%f in (^
|
||||
:winfsp-tests-x86-mountpoint-drive ^
|
||||
:winfsp-tests-x86-mountpoint-dir ^
|
||||
:winfsp-tests-x86-no-traverse ^
|
||||
:winfsp-tests-x64-disk-share ^
|
||||
:winfsp-tests-x64-external-share ^
|
||||
:fsx-memfs-x64-disk ^
|
||||
:fsx-memfs-x64-net ^
|
||||
:winfsp-tests-x86-disk-share ^
|
||||
:winfsp-tests-x86-external-share ^
|
||||
:fsx-memfs-x86-disk ^
|
||||
:fsx-memfs-x86-net ^
|
||||
:winfstest-memfs-x64-disk ^
|
||||
@ -142,7 +142,7 @@ winfsp-tests-x86 --no-traverse
|
||||
if !ERRORLEVEL! neq 0 goto fail
|
||||
exit /b 0
|
||||
|
||||
:winfsp-tests-x64-disk-share
|
||||
:winfsp-tests-x64-external-share
|
||||
M:
|
||||
"%ProjRoot%\build\VStudio\build\%Configuration%\winfsp-tests-x64.exe" --external --share=winfsp-tests-share=M:\ --resilient
|
||||
if !ERRORLEVEL! neq 0 goto fail
|
||||
@ -164,7 +164,7 @@ if !ERRORLEVEL! neq 0 goto fail
|
||||
if !ERRORLEVEL! neq 0 goto fail
|
||||
exit /b 0
|
||||
|
||||
:winfsp-tests-x86-disk-share
|
||||
:winfsp-tests-x86-external-share
|
||||
O:
|
||||
"%ProjRoot%\build\VStudio\build\%Configuration%\winfsp-tests-x86.exe" --external --share=winfsp-tests-share=O:\ --resilient
|
||||
if !ERRORLEVEL! neq 0 goto fail
|
||||
|
Loading…
x
Reference in New Issue
Block a user