Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
31 hours | Windows Driver: Fix deadlock in EncryptedIoQueue due to re-entrant IRP ↵ | Mounir IDRASSI | 2 | -17/+167 | |
completions There was a deadlock issue in the driver caused by the CompletionThreadProc function in EncryptedIoQueue.c: https://sourceforge.net/p/veracrypt/discussion/general/thread/f6e7f623d0/?page=20&limit=25#8362 The driver uses a single thread (CompletionThreadProc) to process IRP completions. When IoCompleteRequest is called within this thread, it can result in new IRPs being generated (e.g., for pagefile operations) that are intercepted by the driver and queued back into the CompletionThreadQueue. Since CompletionThreadProc is the only thread processing this queue and is waiting on IoCompleteRequest, these new IRPs are not handled, leading to a system freeze. To resolve this issue, the following changes have been made: Deferred IRP Completion Using Pre-allocated Work Items: - Introduced a pool of pre-allocated work items (COMPLETE_IRP_WORK_ITEM) to handle IRP completions without causing additional resource allocations that could trigger new IRPs. - The CompletionThreadProc now queues IRP completions to these work items, which are processed in a different context using IoQueueWorkItem, preventing re-entrant IRPs from blocking the completion thread. Thread-Safe Work Item Pool Management: - Implemented a thread-safe mechanism using a semaphore (WorkItemSemaphore), spin lock (WorkItemLock), and a free list (FreeWorkItemsList) to manage the pool of work items. - Threads acquire and release work items safely, and if all work items are busy, threads wait until one becomes available. Reference Counting and Improved Stop Handling: - Added an ActiveWorkItems counter to track the number of active work items. - Modified EncryptedIoQueueStop to wait for all active work items to complete before proceeding with cleanup, ensuring a clean shutdown. These changes address the deadlock issue by preventing CompletionThreadProc from being blocked by re-entrant IRPs generated during IoCompleteRequest. By deferring IRP completion to a different context using pre-allocated work items and managing resources properly, we avoid the deadlock and ensure that all IRPs are processed correctly. | |||||
34 hours | Linux/macOS: make binary symbols visible in crash report. | Mounir IDRASSI | 1 | -1/+4 | |
2 days | Windows Driver: Add Unicode define to build and enhance tracing in debug mode | Mounir IDRASSI | 2 | -151/+83 | |
2 days | Windows: Fix driver crash caused by 32-bit leftover code in ↵ | Mounir IDRASSI | 1 | -3/+0 | |
derive_key_blake2s function | |||||
3 days | Windows: Avoid modifying BootArguments structure and use __unaligned keyword ↵ | Mounir IDRASSI | 4 | -5/+4 | |
to inform compiler that pointer is unaligned. This avoids issues with existing bootloaders | |||||
3 days | Windows: remove 32-bit logic from the code since we support only 64-bit. ↵ | Mounir IDRASSI | 41 | -521/+127 | |
remove 32-bit EFI bootloader files. We also fix intermediary files folder for Portable and Setup projects | |||||
3 days | Windows: Fix output directory configuration of COMREG project | Mounir IDRASSI | 1 | -4/+4 | |
3 days | Windows: Fix regression in self-test of hash algorithms that caused them to fail | Mounir IDRASSI | 1 | -2/+2 | |
3 days | Windows: Fix VS 2022 projects references | Mounir IDRASSI | 4 | -26/+30 | |
3 days | Windows: remove VS 2019 solution and project files since we migrated to VS 2022. | Mounir IDRASSI | 28 | -7285/+0 | |
3 days | Windows: Fix delayload link warning about comdlg32.dll not used. Remove ↵ | Mounir IDRASSI | 8 | -866/+29 | |
unused old project files | |||||
3 days | Windows: move main project files and solution from VS 2010 to VS 2022. ↵ | Mounir IDRASSI | 28 | -6847/+1810 | |
Delete unused files. | |||||
3 days | Windows: Fix warning when building Setup and Portable. No file elevation is ↵ | Mounir IDRASSI | 1 | -0/+8 | |
used for them. | |||||
4 days | Windows: Upgrade VS 2019 solution/projects to VS 2022. Remove Win32 ↵ | Mounir IDRASSI | 14 | -1816/+880 | |
configuration for driver and binaries. Only setup remains 32-bit to be compatible with both x64 and arm64 Windows. | |||||
4 days | Windows: Fix build of MBR bootloader | Mounir IDRASSI | 1 | -1/+1 | |
4 days | Windows: Fix warning in driver build by make get_pkcs5_iteration_count have ↵ | Mounir IDRASSI | 1 | -40/+36 | |
a single return statement at the end | |||||
4 days | Windows: Use VS builtin __fastfail intrinsic for fatal exception instead of ↵ | Mounir IDRASSI | 1 | -0/+3 | |
affecting NULL pointer | |||||
4 days | Windows: Fix various compiler warnings | Mounir IDRASSI | 17 | -287/+301 | |
4 days | Windows: Fix MBR bootload compilation error following latest changes | Mounir IDRASSI | 1 | -3/+3 | |
6 days | Use portable alignment macro to be compatible with Linux/macOS | Mounir IDRASSI | 1 | -1/+2 | |
6 days | Use adequate const qualifiers for pbkdf2 functions arguments | Mounir IDRASSI | 2 | -16/+16 | |
6 days | Linux: Fix build error following latest code cleanup | Mounir IDRASSI | 2 | -10/+10 | |
6 days | Windows: Remove support for 32-bit driver code. Set build target as Windows ↵ | Mounir IDRASSI | 31 | -777/+512 | |
10. Simplify code and fix all warnings in driver. | |||||
6 days | Windows: Use BCryptGenRandom instead of deprecated CryptGenRandom to ↵ | Mounir IDRASSI | 1 | -27/+21 | |
generate secure random bytes | |||||
8 days | Linux: Fix build error caused by changes for dynamic CPU SHA support detection | Mounir IDRASSI | 2 | -56/+61 | |
8 days | Linux: Fix detection of SHA CPU support on virtualized environment by trying ↵ | Mounir IDRASSI | 1 | -0/+66 | |
SHA instruction | |||||
8 days | Linux: Fix build error following SHA intrinsic support changes | Mounir IDRASSI | 2 | -4/+7 | |
8 days | Add support for SHA-256 x86 instrinsic for enhance performance of ↵ | Mounir IDRASSI | 17 | -3/+334 | |
PBKDF2-HMAC-SHA256 | |||||
10 days | Translations: Fix missing lang id in Romanian translation | Mounir IDRASSI | 1 | -5/+5 | |
10 days | Update Language.ro.xml (#1434) | TigerxWood | 1 | -5/+5 | |
2024-09-24 | Linux: Improve directory opening logic by prioritizing xdg-open and adding ↵ | Mounir IDRASSI | 1 | -46/+52 | |
fallback mechanisms (#1420) - Use xdg-open as the primary method for opening directories, ensuring compatibility with most Linux environments. - Implemented fallback logic to try other known file managers (e.g., nautilus, dolphin, caja, thunar) if xdg-open is unavailable or fails. Based on proposal by @bugtracker2019 | |||||
2024-09-22 | Linux: Add Fedora as supported distribution in CMakeLists.txt | Mounir IDRASSI | 1 | -2/+13 | |
2024-09-19 | Windows: Fix EFI configuration editor various issues | Mounir IDRASSI | 2 | -7/+47 | |
We always using Unicode functions to interact with UI. We convert UTF8 string to UTF16 and vis-versa. Overwrite input string instead of using resize that caused old test to remain. Fix case of readOnly by using correct message. change position of OK/cancel button to match other dialogs. Activate translation on this dialog. | |||||
2024-09-18 | Linux: fix assert by wxWidgets library included in Ubuntu. | Mounir IDRASSI | 1 | -1/+4 | |
2024-09-17 | Windows: Simplify error message related to IsEfiBoot since it always fail ↵ | Mounir IDRASSI | 1 | -20/+6 | |
with ERROR_INVALID_FUNCTION Proposed by @kriegste on https://github.com/veracrypt/VeraCrypt/issues/360 | |||||
2024-09-17 | macOS: fix regression in build script that caused it to ignore fuset switch | Mounir IDRASSI | 1 | -1/+1 | |
fixed by Mattoje #1417 | |||||
2024-09-17 | macOS: restrict --allow-screencapture switch to macOS only since screen ↵ | Mounir IDRASSI | 1 | -0/+2 | |
protection doesn't work on Linux In the code we also enable it for TC_WINDOWS but actually we don't use wxWidgets for Windows build. | |||||
2024-09-17 | Add Option to Enable/Disable Screen Capture (#1418) | Deniz Türkoglu | 6 | -0/+22 | |
Veracrypt currently appears in screenshots and screen captures, which can unintentionally expose sensitive information, such as the fact that Veracrypt is running or the location of your volumes. Both Windows and macOS offer mechanisms to exclude specific windows from being captured. While not foolproof, this is a useful preventative measure. The method is a no-op for Linux/FreeBSD. For more details on the wxWidgets API, see: https://docs.wxwidgets.org/3.2/classwx_top_level_window.html#a337b9cec62b0cbd3b1b1545a83270f64 | |||||
2024-09-16 | Windows: Fix failed EFI detection on some PCs where BootOrder variable is ↵ | Mounir IDRASSI | 1 | -1/+1 | |
not defined. we now report that EFI is not support only when GetFirmwareEnvironmentVariable fails with error ERROR_INVALID_FUNCTION. Proposed by @kriegste on https://github.com/veracrypt/VeraCrypt/issues/360 | |||||
2024-09-16 | macOS: enhance macOS build script(allow local build, specify wxWidgets ↵ | Mounir IDRASSI | 1 | -26/+77 | |
version, control packaging) Based on proposal by @Mattoje in https://github.com/veracrypt/VeraCrypt/issues/1417 | |||||
2024-09-15 | Update Language.sv.xml (#1416) | Jonatan | 1 | -3/+3 | |
* Update Language.sv.xml * Update Language.sv.xml * Update Language.sv.xml | |||||
2024-09-10 | Linux/macOS: Fix missing define that was causing compilation error | Mounir IDRASSI | 1 | -0/+2 | |
2024-09-10 | Translations: Fix wrong escape sequences in Swedish translation (fixed by ↵ | Mounir IDRASSI | 1 | -4/+4 | |
@an1 on Sourceforge) | |||||
2024-09-08 | Windows: Add support for x86 and x64 build for driver and binaries using ↵ | Mounir IDRASSI | 26 | -168/+2518 | |
Visual Studio 2019 We also enable Control Flow Guard and Spectre Mitigation | |||||
2024-09-08 | Windows: use wcstok_s instead of wcstok for more secure parsing of directory ↵ | Mounir IDRASSI | 2 | -107/+107 | |
path | |||||
2024-09-02 | Documentation: Update CHM user guideVeraCrypt_1.26.15 | Mounir IDRASSI | 1 | -0/+0 | |
2024-09-02 | Update Release Notes to mention the fix of EFI regression | Mounir IDRASSI | 2 | -5/+7 | |
2024-09-02 | Windows: Fix bug in disabling of Windows privileges, they were completely ↵ | Mounir IDRASSI | 1 | -2/+2 | |
removed instead This started to cause issues after latest changes to disable privileges when they are no more needed. Because of the bug, the privileges could not be enabled again because they were wrongly removed. | |||||
2024-09-02 | Windows: Fix truncated displayed error message | Mounir IDRASSI | 1 | -4/+4 | |
2024-09-01 | Windows: Update Release Notes for 1.26.15 release to mention MSI related changes | Mounir IDRASSI | 2 | -0/+34 | |