From 68ac8c2fb904f3fc2d1fb92866909c13d56f613e Mon Sep 17 00:00:00 2001 From: Hartmut Birr Date: Sun, 18 Jan 2004 22:37:53 +0000 Subject: [PATCH] - Remove '\.\' sequences from destination file name in CabinetExtractFile. svn path=/trunk/; revision=7758 --- reactos/subsys/system/usetup/cabinet.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/reactos/subsys/system/usetup/cabinet.c b/reactos/subsys/system/usetup/cabinet.c index 173523df612..fc4080a8fe8 100755 --- a/reactos/subsys/system/usetup/cabinet.c +++ b/reactos/subsys/system/usetup/cabinet.c @@ -1618,6 +1618,7 @@ CabinetExtractFile(PWCHAR FileName) FILETIME FileTime; WCHAR DestName[MAX_PATH]; WCHAR TempName[MAX_PATH]; + PWCHAR s; NTSTATUS NtStatus; UNICODE_STRING UnicodeString; IO_STATUS_BLOCK IoStatusBlock; @@ -1653,11 +1654,17 @@ CabinetExtractFile(PWCHAR FileName) wcscpy(DestName, DestPath); wcscat(DestName, FileName); - + + while (NULL != (s = wcsstr(DestName, L"\\.\\"))) + { + memmove(s, s + 2, (wcslen(s + 2) + 1) *sizeof(WCHAR)); + } + /* Create destination file, fail if it already exists */ RtlInitUnicodeString(&UnicodeString, DestName); + InitializeObjectAttributes(&ObjectAttributes, &UnicodeString, OBJ_CASE_INSENSITIVE,