Name: UnRAR source for decompressing .RAR and other files. Short Name: unrar URL: https://www.rarlab.com/rar/unrarsrc-7.2.5.tar.gz Update Mechanism: Manual Version: 7.21.1 License: UnRAR License File: src/license.txt License Android Compatible: No CPEPrefix: cpe:/a:rarlab:unrar Security Critical: yes Shipped: yes Description: This library is used to decompress and analyze .RAR and other related files that have been downloaded by the user to check their Safe Browsing reputation. It is only for Chromium on desktop. Warning: Please note that changes have been made to this library to terminate the current process in which this library is running, when it encounters some error conditions. This is acceptable for Chromium because the library executes inside a sandbox, but may not apply more broadly. Notable changes from upstream: - Use CHROMIUM_UNRAR macro to guard Chromium-specific changes. - Rewrite WinNT() in isnt.cpp to use the new Windows APIs. - Replace exceptions with terminating the current process. Guarded with the macro UNRAR_NO_EXCEPTIONS. - Pass a file handle to the rar file, instead of trying to open the rar file inside the unrar library code. This is done because the unrar library code operates inside a sandbox, so it doesn't have the permissions to open files. - Remove calls to change file permissions, since all operations should be done on the file handle. - Remove some static initializers. - Pass a file handle to a temporary file with write permission, so the archive can be extracted inside the sandbox for analysis. - Fix a bug with NOVOLUME implementation (https://crbug.com/949787). This should be temporary, until the fix can be pulled from upstream. - More static initializers removed. - Changes to support building in -std=c++20 mode. - Cherry-picked https://github.com/aawc/unrar/pull/35 - Fix alignment errors reported by UBSan by disabling ALLOW_MISALIGNED. - Fix unportable include name. - Replace functions that call user32.dll and gdi32.dll on Windows, to avoid loading them under win32k lockdown sandbox. - Disable SSE support. - Use CHROMIUM_UNRAR_FUZZER macro to guard Chromium-specific changes used in libfuzzer target: - Limit the max dictionary size allowed for unpacking files to 1 GB rather than 64 GB. All these changes are included in one patch file (chromium_changes.patch)