win: Use RegOpenKeyExW() instead of RegOpenKeyEx() [crashpad/crashpad : main]

132 views
Skip to first unread message

Ben Hamilton (Gerrit)

unread,
Mar 10, 2022, 5:34:17 PM3/10/22
to Mark Mentovai, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

Attention is currently required from: Joshua Peraza.

View Change

2 comments:

  • Commit Message:

    • Patch Set #1, Line 7: win: Use `RegOpenKeyExW()` instead of `RegOpenKeyEx()`

      Nothing interprets markdown here.

      Done

  • Patchset:

    • Patch Set #1:

      LGTM if it's just these two others. […]

      Yep, looks like it's just these two.

      There's definitely two conflicting axes here:

      1) Chromium as an application always builds with `-DUNICODE`
      2) Crashpad is a shared library that supports non-Chromium applications for which it doesn't control the build environment

      This specific scenario is tricky because the very very large CI environment I'm integrating Crashpad into does *not* set `-DUNICODE` universally for Windows applications.

      Doing so for specific applications isn't impossible, but the CI team pushes back very hard against it, since it means the cache cannot be shared between apps with and without the preprocessor define.

      I'm asking around now to see if we can change it globally for our CI environment, but until then, it might make sense to have Crashpad for Windows configure its CI to build with and without `-DUNICODE`.

To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: crashpad/crashpad
Gerrit-Branch: main
Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
Gerrit-Change-Number: 3516538
Gerrit-PatchSet: 2
Gerrit-Owner: Ben Hamilton <benha...@google.com>
Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
Gerrit-Comment-Date: Thu, 10 Mar 2022 22:34:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mark Mentovai <ma...@chromium.org>
Gerrit-MessageType: comment

Ben Hamilton (Gerrit)

unread,
Mar 10, 2022, 5:36:30 PM3/10/22
to Mark Mentovai, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

Attention is currently required from: Joshua Peraza.

Patch set 2:Commit-Queue +2

View Change

    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 2
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Comment-Date: Thu, 10 Mar 2022 22:36:23 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Mark Mentovai (Gerrit)

    unread,
    Mar 10, 2022, 5:36:34 PM3/10/22
    to Ben Hamilton, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

    Attention is currently required from: Ben Hamilton, Joshua Peraza.

    Patch set 2:Code-Review +1Commit-Queue +2

    View Change

    1 comment:

    • Patchset:

    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 2
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-Attention: Ben Hamilton <benha...@google.com>
    Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Comment-Date: Thu, 10 Mar 2022 22:36:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Mark Mentovai (Gerrit)

    unread,
    Mar 10, 2022, 5:38:25 PM3/10/22
    to Ben Hamilton, Crashpad LUCI CQ, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

    Attention is currently required from: Ben Hamilton, Joshua Peraza.

    Patch set 2:Commit-Queue +2

    View Change

    1 comment:

    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 2
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-Attention: Ben Hamilton <benha...@google.com>
    Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Comment-Date: Thu, 10 Mar 2022 22:38:17 +0000

    Mark Mentovai (Gerrit)

    unread,
    Mar 10, 2022, 5:57:55 PM3/10/22
    to Ben Hamilton, Justin Cohen, Crashpad LUCI CQ, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

    Attention is currently required from: Ben Hamilton, Joshua Peraza.

    Patch set 2:Commit-Queue +2

    View Change

    1 comment:

    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 2
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-CC: Justin Cohen <justi...@chromium.org>
    Gerrit-Attention: Ben Hamilton <benha...@google.com>
    Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Comment-Date: Thu, 10 Mar 2022 22:57:47 +0000

    Justin Cohen (Gerrit)

    unread,
    Mar 10, 2022, 6:09:13 PM3/10/22
    to Ben Hamilton, Crashpad LUCI CQ, Mark Mentovai, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

    Attention is currently required from: Ben Hamilton, Joshua Peraza.

    View Change

    1 comment:

    • Patchset:

      • Yeah, investigating failures now, not sure what's up yet.

    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 2
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-CC: Justin Cohen <justi...@chromium.org>
    Gerrit-Attention: Ben Hamilton <benha...@google.com>
    Gerrit-Attention: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Comment-Date: Thu, 10 Mar 2022 23:09:05 +0000

    Crashpad LUCI CQ (Gerrit)

    unread,
    Mar 10, 2022, 6:10:40 PM3/10/22
    to Ben Hamilton, Justin Cohen, Mark Mentovai, Joshua Peraza, Bruce Dawson, crashp...@chromium.org

    Crashpad LUCI CQ submitted this change.

    View Change


    Approvals: Mark Mentovai: Looks good to me; Commit
    win: Use RegOpenKeyExW() instead of RegOpenKeyEx()

    Similar to crrev.com/c/3516536, this CL fixes the Windows build
    when the UNICODE preprocessor macro is not defined where
    code passes Unicode string literals with L"..." to non-Unicode
    APIs like RegOpenKeyEx().

    This fixes the build by explicitly using RegOpenKeyExW() instead.

    Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3516538
    Reviewed-by: Mark Mentovai <ma...@chromium.org>
    Commit-Queue: Mark Mentovai <ma...@chromium.org>
    ---
    M snapshot/win/system_snapshot_win.cc
    1 file changed, 29 insertions(+), 10 deletions(-)

    diff --git a/snapshot/win/system_snapshot_win.cc b/snapshot/win/system_snapshot_win.cc
    index 6fc6945..a19253f 100644
    --- a/snapshot/win/system_snapshot_win.cc
    +++ b/snapshot/win/system_snapshot_win.cc
    @@ -158,11 +158,11 @@
    bool version_data_found = false;
    int os_version_build = 0;
    HKEY key;
    - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    - L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
    - 0,
    - KEY_QUERY_VALUE,
    - &key) == ERROR_SUCCESS) {
    + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
    + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",
    + 0,
    + KEY_QUERY_VALUE,
    + &key) == ERROR_SUCCESS) {
    ScopedRegistryKey scoped_key(key);

    // Read the four components of the version from the registry.
    @@ -282,11 +282,11 @@
    #elif defined(ARCH_CPU_ARM64)
    HKEY key;

    - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    - L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
    - 0,
    - KEY_QUERY_VALUE,
    - &key) != ERROR_SUCCESS) {
    + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
    + L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
    + 0,
    + KEY_QUERY_VALUE,
    + &key) != ERROR_SUCCESS) {
    return std::string();
    }


    To view, visit change 3516538. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: crashpad/crashpad
    Gerrit-Branch: main
    Gerrit-Change-Id: I14a827357b9cbd42452e0e5eb13a3430569559a5
    Gerrit-Change-Number: 3516538
    Gerrit-PatchSet: 3
    Gerrit-Owner: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Ben Hamilton <benha...@google.com>
    Gerrit-Reviewer: Crashpad LUCI CQ <crashpa...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Reviewer: Joshua Peraza <jpe...@chromium.org>
    Gerrit-Reviewer: Mark Mentovai <ma...@chromium.org>
    Gerrit-CC: Bruce Dawson <bruce...@chromium.org>
    Gerrit-CC: Justin Cohen <justi...@chromium.org>
    Gerrit-MessageType: merged
    Reply all
    Reply to author
    Forward
    0 new messages