diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-03-17 17:04:41 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-03-18 15:38:53 +0100 |
| commit | a28347df01acb5efbf748eab2c1c0f5331e60610 (patch) | |
| tree | 1effbcc45ecf4ddf0bf437f845a92793ad8b0896 | |
| parent | c5ca247b486a09f149f88c89837cb276cf6c2181 (diff) | |
| download | mullvadvpn-a28347df01acb5efbf748eab2c1c0f5331e60610.tar.xz mullvadvpn-a28347df01acb5efbf748eab2c1c0f5331e60610.zip | |
Close file handle before deleting logs
| -rw-r--r-- | dist-assets/windows/installer.nsh | 9 | ||||
| -rw-r--r-- | windows/nsis-plugins/src/log/log.cpp | 15 | ||||
| -rw-r--r-- | windows/nsis-plugins/src/log/log.def | 2 |
3 files changed, 19 insertions, 7 deletions
diff --git a/dist-assets/windows/installer.nsh b/dist-assets/windows/installer.nsh index 5f14fc23cc..a7ca239345 100644 --- a/dist-assets/windows/installer.nsh +++ b/dist-assets/windows/installer.nsh @@ -35,6 +35,7 @@ # Log targets !define LOG_INSTALL 0 !define LOG_UNINSTALL 1 +!define LOG_VOID 2 # Windows error codes !define ERROR_SERVICE_DOES_NOT_EXIST 1060 @@ -650,7 +651,7 @@ Push $1 Push $R0 - log::Initialize ${LOG_INSTALL} + log::SetLogTarget ${LOG_INSTALL} log::Log "Running installer for ${PRODUCT_NAME} ${VERSION}" log::LogWindowsVersion @@ -859,7 +860,7 @@ Var /GLOBAL Silent Var /GLOBAL NewVersion - log::Initialize ${LOG_UNINSTALL} + log::SetLogTarget ${LOG_UNINSTALL} log::Log "Running uninstaller for ${PRODUCT_NAME} ${VERSION}" @@ -940,6 +941,8 @@ ${ExtractWintun} ${RemoveWintun} + log::SetLogTarget ${LOG_VOID} + ${RemoveLogsAndCache} ${If} $Silent != 1 MessageBox MB_ICONQUESTION|MB_YESNO "Would you like to remove settings files as well?" IDNO customRemoveFiles_after_remove_settings @@ -947,6 +950,8 @@ ${EndIf} customRemoveFiles_after_remove_settings: ${Else} + log::SetLogTarget ${LOG_VOID} + SetShellVarContext all Delete "$LOCALAPPDATA\Mullvad VPN\uninstall.log" ${EndIf} diff --git a/windows/nsis-plugins/src/log/log.cpp b/windows/nsis-plugins/src/log/log.cpp index 70cd185206..4a7bf1bf49 100644 --- a/windows/nsis-plugins/src/log/log.cpp +++ b/windows/nsis-plugins/src/log/log.cpp @@ -184,17 +184,18 @@ std::wstring GetWindowsVersion() } // anonymous namespace // -// Initialize +// SetLogTarget // // Opens and maintains an open handle to the log file. // enum class LogTarget { LOG_INSTALL = 0, - LOG_UNINSTALL = 1 + LOG_UNINSTALL = 1, + LOG_VOID = 2 }; -void __declspec(dllexport) NSISCALL Initialize +void __declspec(dllexport) NSISCALL SetLogTarget ( HWND hwndParent, int string_size, @@ -225,6 +226,12 @@ void __declspec(dllexport) NSISCALL Initialize logfile = L"uninstall.log"; break; } + case static_cast<int>(LogTarget::LOG_VOID): + { + delete g_logger; + g_logger = nullptr; + return; + } default: { THROW_ERROR("Invalid log target"); @@ -263,7 +270,7 @@ void __declspec(dllexport) NSISCALL Initialize { std::stringstream ss; - ss << "Failed to initialize logging plugin." + ss << "Failed to set logging plugin target." << std::endl << err.what(); diff --git a/windows/nsis-plugins/src/log/log.def b/windows/nsis-plugins/src/log/log.def index 11cffd21e3..d51b04ab7b 100644 --- a/windows/nsis-plugins/src/log/log.def +++ b/windows/nsis-plugins/src/log/log.def @@ -2,7 +2,7 @@ LIBRARY log EXPORTS -Initialize +SetLogTarget Log LogWithDetails LogWindowsVersion |
