diff options
-rw-r--r-- | plugins/PluginUpdater/src/unzipfile.cpp | 3 | ||||
-rw-r--r-- | src/mir_app/src/pu_utils.cpp | 20 |
2 files changed, 16 insertions, 7 deletions
diff --git a/plugins/PluginUpdater/src/unzipfile.cpp b/plugins/PluginUpdater/src/unzipfile.cpp index 386c1265e2..2c661758fb 100644 --- a/plugins/PluginUpdater/src/unzipfile.cpp +++ b/plugins/PluginUpdater/src/unzipfile.cpp @@ -125,7 +125,8 @@ int extractCurrentFile(unzFile uf, wchar_t *pwszDestPath, wchar_t *pwszBackPath, while (true) {
err = unzReadCurrentFile(uf, buf, DATA_BUF_SIZE);
if (err <= 0) {
- Netlib_LogfW(g_hNetlibUser, L"Error reading zipped file %s: %d", pwszFile2unzip, err);
+ if (err)
+ Netlib_LogfW(g_hNetlibUser, L"Error reading zipped file %s: %d", pwszFile2unzip, err);
break;
}
diff --git a/src/mir_app/src/pu_utils.cpp b/src/mir_app/src/pu_utils.cpp index 0c7f379d0a..019b9136d7 100644 --- a/src/mir_app/src/pu_utils.cpp +++ b/src/mir_app/src/pu_utils.cpp @@ -247,8 +247,10 @@ MIR_APP_DLL(int) PU::SafeMoveFile(const wchar_t *pSrc, const wchar_t *pDst) if (g_hPipe == nullptr) {
if (!DeleteFileW(pDst)) {
uint32_t dwError = GetLastError();
- if (dwError != ERROR_ACCESS_DENIED && dwError != ERROR_FILE_NOT_FOUND)
+ if (dwError != ERROR_ACCESS_DENIED && dwError != ERROR_FILE_NOT_FOUND) {
+ Netlib_LogfW(0, L"Unable to delete dest file %s during move, error %d", pDst, dwError);
return dwError;
+ }
}
if (!MoveFileW(pSrc, pDst)) { // use copy on error
@@ -262,11 +264,17 @@ MIR_APP_DLL(int) PU::SafeMoveFile(const wchar_t *pSrc, const wchar_t *pDst) case ERROR_LOCK_VIOLATION:
// use copy routine if a move operation isn't available
// for example, when files are on different disks
- if (!CopyFileW(pSrc, pDst, FALSE))
- return GetLastError();
-
- if (!DeleteFileW(pSrc))
- return GetLastError();
+ if (!CopyFileW(pSrc, pDst, FALSE)) {
+ dwError = GetLastError();
+ Netlib_LogfW(0, L"Unable to copy file %s to %s during move, error %d", pSrc, pDst, dwError);
+ return dwError;
+ }
+
+ if (!DeleteFileW(pSrc)) {
+ dwError = GetLastError();
+ Netlib_LogfW(0, L"Unable to delete source file %s during move, error %d", pSrc, dwError);
+ return dwError;
+ }
break;
default:
|