Commit c29b7c35 authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

shell32: Skip dot directories in SHFileOperation.

In ShFileOperation when generating a file list with * wildcards, for example for deletion, do not include the dot directories (. and ..) in the list, because that cause the operation to spiral out of control.
parent 71b94726
......@@ -779,7 +779,7 @@ static DWORD count_wildcard_files(LPCWSTR szWildFile)
while (res)
{
dwCount++;
if (!IsDotDir(wfd.cFileName)) dwCount++;
res = FindNextFileW(hFile, &wfd);
}
......@@ -879,18 +879,16 @@ static void parse_wildcard_files(FILE_LIST *flList, LPWSTR szFile, LPDWORD pdwLi
WIN32_FIND_DATAW wfd;
HANDLE hFile = FindFirstFileW(szFile, &wfd);
LPWSTR szFullPath;
BOOL res = TRUE, bDir;
while (res)
BOOL res;
for (res = TRUE; res; res = FindNextFileW(hFile, &wfd))
{
if (IsDotDir(wfd.cFileName)) continue;
szFullPath = wildcard_to_file(szFile, wfd.cFileName);
bDir = add_file_to_entry(&flList->feFiles[(*pdwListIndex)++],
szFullPath, TRUE);
HeapFree(GetProcessHeap(), 0, szFullPath);
res = FindNextFileW(hFile, &wfd);
if (bDir)
if (add_file_to_entry(&flList->feFiles[(*pdwListIndex)++],
szFullPath, TRUE))
flList->bAnyDirectories = TRUE;
HeapFree(GetProcessHeap(), 0, szFullPath);
}
FindClose(hFile);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment