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/shlfileop... ============================================================================== --- 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 {