Author: gadamopoulos
Date: Sat Aug 20 09:43:09 2016
New Revision: 72398
URL:
http://svn.reactos.org/svn/reactos?rev=72398&view=rev
Log:
[SHELL32]
- Fail to delete any file if one is invalid.
- Patch by andy-123
CORE-9959
Modified:
trunk/reactos/dll/win32/shell32/shlfileop.cpp
Modified: trunk/reactos/dll/win32/shell32/shlfileop.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shlfileo…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shlfileop.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shlfileop.cpp [iso-8859-1] Sat Aug 20 09:43:09 2016
@@ -1480,6 +1480,19 @@
return 0;
}
+ /* Check files. Do not delete one if one file does not exists */
+ for (i = 0; i < flFrom->dwNumFiles; i++)
+ {
+ fileEntry = &flFrom->feFiles[i];
+
+ if ((HANDLE)fileEntry->attributes == INVALID_HANDLE_VALUE)
+ {
+ // This is a windows 2003 server specific value which has been removed.
+ // Later versions of windows return ERROR_FILE_NOT_FOUND.
+ return ERROR_SHELL_INTERNAL_FILE_NOT_FOUND;
+ }
+ }
+
for (i = 0; i < flFrom->dwNumFiles; i++)
{
bPathExists = TRUE;
@@ -1527,7 +1540,7 @@
{
// This is a windows 2003 server specific value which ahs been removed.
// Later versions of windows return ERROR_FILE_NOT_FOUND.
- return 1026;
+ return ERROR_SHELL_INTERNAL_FILE_NOT_FOUND;
}
else
{