Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: crash in safeStorage on Linux #34263

Merged
merged 4 commits into from May 19, 2022

Commits on May 17, 2022

  1. fix: fix a crash in safeStorage on Linux (electron#33913)

    On Linux, `isEncryptionAvailable()` was crashing instead of returning a
    boolean before the 'ready' event was emitted by the app. The reason of
    the crash is that [`CreateKeyStorage()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=74;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0)
    expects the config to be set but the function responsible for setting the
    config, [`SetConfig()`](https://source.chromium.org/chromium/chromium/src/+/main:components/os_crypt/os_crypt_linux.cc;l=237;drc=35be6215ec8f09e50176f36753c68f26c63d1885;bpv=1;bpt=0),
    is called only after the app is ready inside [`PostCreateMainMessageLoop()`](https://github.com/electron/electron/blob/main/shell/browser/electron_browser_main_parts.cc#L499).
    So this changes `IsEncryptionAvailable()` to return `false` when the app
    is not ready on Linux and uses that instead of the raw API in other
    places like `EncryptString()` and `DecryptString()`.
    
    Fixes: electron#32206
    Signed-off-by: Darshan Sen <raisinten@gmail.com>
    RaisinTen committed May 17, 2022
    Copy the full SHA
    e5bd512 View commit details
    Browse the repository at this point in the history
  2. fix: replace BUILDFLAG(IS_LINUX) with defined(OS_LINUX)

    Signed-off-by: Darshan Sen <raisinten@gmail.com>
    RaisinTen committed May 17, 2022
    Copy the full SHA
    7bf6abe View commit details
    Browse the repository at this point in the history

Commits on May 18, 2022

  1. Linux: Send OSCrypt raw encryption key to the Network Service

    This backports electron@0e09738.
    
    Signed-off-by: Darshan Sen <raisinten@gmail.com>
    RaisinTen committed May 18, 2022
    Copy the full SHA
    bc72f7a View commit details
    Browse the repository at this point in the history
  2. fix: add ifdef guard around NetworkService::SetEncryptionKey()

    network::mojom::NetworkService::SetEncryptionKey() is only available on
    Windows and macOS.
    
    Signed-off-by: Darshan Sen <raisinten@gmail.com>
    RaisinTen committed May 18, 2022
    Copy the full SHA
    ae4ea0b View commit details
    Browse the repository at this point in the history