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

Meta: update 2023-11-24 #91

Merged
merged 31 commits into from
Nov 27, 2023
Merged

Meta: update 2023-11-24 #91

merged 31 commits into from
Nov 27, 2023

Conversation

supervacuus
Copy link
Collaborator

No description provided.

quidity and others added 29 commits September 28, 2023 17:24
Some users of crashpad load and unload the dll that hosts
crashpad code. crashpad registers a vectored exception handler
to help collect heap corruption crashes. If the dll is
unloaded this handler might still be called.

This CL adds a scoped handler for such registrations and
uses it on Windows crashpad client. To allow this to
be stored, RegisterHandler() on the client needs to move
onto the client object from being a helper function.

Bug: crashpad:462
Change-Id: I5d77c056e2a9a61ddcfa9d0186ab4bfd85a19bff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4898263
Reviewed-by: Ben Hamilton <benhamilton@google.com>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Alex Gough <ajgo@chromium.org>
WebView makes use of this allowlist. We are hoping to
include switches and features in our crash keys as users
can enable these with an easily available developer UI.

These crash keys follow a pattern of "switch-<index>" so
it is impractical to indefinitely add a larger list of switch
keys. Adding this matcher lets us rather add "switch-*".

Bug: 1484644
Change-Id: I667cef70cce1efb0710b4a2f009d8d80a1eeae5a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4894239
Commit-Queue: Rupert Wiser <bewise@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
We had an issue that was causing breackages with Fuchsia builders. We
needed to copy over additional code to mini_chromium. Making sure this
relies on the improved version as well.

Bug: 1484644
Change-Id: I0250a44cb29c758d7865cc6222d32a69048c9157
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4905890
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
This is needed in Chromium for enabling iOS PartitionAlloc

Rolls mini_chromium to support overriding the BundleIdentifier.

Bug: 1489308
Change-Id: I314958182f35edba3300e545b2877d288b43ccb9
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4911575
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
The previous CIPD location was stale and the packages there are no
longer updated. Compiling for Fuchsia using the latest toolchain
revealed that zlib needed to be updated as well to resolve errors
thrown by -Wstrict-prototypes.

Newer versions of zlib fail to compile for Fuchsia without the addition
of -Wno-sign-compare, recommended for this situation by the Fuchsia
toolchain team.

Bug: fuchsia:128938
Bug: fuchsia:128939

Change-Id: Iccf6dcb1aef1e1811f458fd18a2f04e7b044a918
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4893089
Commit-Queue: Thomas Gales <tgales@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
dyld in macOS 14 has two changes that impact how we read in modules:
- Timestamp is always empty
- The executable appears *last* rather than first in the
dyld_all_image_infos array (see comment for details)

This change:
- Removes all timestamp checks in the tests
- Removes 10.6 era code that worked around a different "executable in
the wrong place" issue. Replaces this with a new branch that checks
if the executable is in the last position, and rotates it to the
front if so. This is necessary instead of just swapping (as in the 10.6
code)  so that it can match the order returned by the `dyld_get_image...` family.

Bug: chromium:1452203
Change-Id: Iac9b29a0d9b9461b0ef386c9541661171ef9fd11
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4917145
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
ASAN injects a bad de-reference in HandleHeapCorruption() that causes it to be recursively invoked.

Bug: crashpad:464
Change-Id: I5e8db5555462166b963e0e43c6eb8ac0b327219e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4935953
Reviewed-by: Alex Gough <ajgo@chromium.org>
Commit-Queue: Rich Mckeever <mckeever@google.com>
This is a follow-up to 0fc1b6a.

The change in macOS 14's dyld to insert new modules in the front of
`dyld_all_image_infos` means that if any images are loaded after the
executable and its direct dependencies, it's no longer possible to
rotate the list to match the order used by the `dyld_get_image...`
APIs.

This forces us to dispense with checking the order at all except to
ensure that the executable is first, and dyld itself is last.

Additionally fixes an unreachable return introduced in
0fc1b6a.

Bug: chromium:1452203
Change-Id: If0b09b9110d8f60d29cca79ea6a59050b0293c5e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4935952
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
f145b54 put the only reference to this
in a non-ASAN block, so we're hitting an unused function warning rolling
into Chromium

Bug: crashpad:464
Change-Id: I225debd48a255aa5214e02a6821dcd72c618f141
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4939552
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
The variable was to true in https://crrev.com/c/3308823 and is
never overridden. Remove it as it simplify the logic of the
test targets (and remove code duplication).

  This is a followup to https://crrev.com/c/4935576 which make
  the corresponding change in the Chromium repository.

Bug: 1250788
Change-Id: Ide05fa3bf4177b5761ef0ad5c6edf9baf181b28c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4943570
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Bug: 1371963
Change-Id: I7fa4557472684cdd2b8e0cc977230941f26f1eaa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4943901
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
…1fddfe (1 commit)

https://chromium.googlesource.com/chromium/mini_chromium/+log/276f2ac531cd..42f1fddfec57

$ git log 276f2ac53..42f1fddfe --date=short --no-merges --format='%ad %ae %s'
2023-10-16 pkasting Use POSIX format specifiers on Windows.

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Bug: 1371963
Change-Id: I7210b416b5e498b9888d1c942084c07ef177b667
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4944315
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Include check_op.h directly, instead of relying on the transitive
include from logging.h. This transitive include does not exist in
Chromium's //base.

Change-Id: I15962a9cdc26ac206032157b8d2659cf263ad695
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4950200
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
…dca83b (3 commits)

https://chromium.googlesource.com/chromium/mini_chromium/+log/42f1fddfec57..bc8dca83bd2f

$ git log 42f1fddfe..bc8dca83b --date=short --no-merges --format='%ad %ae %s'
2023-10-18 pkasting Add iter_reference_t to template_util.h.
2023-10-18 thestig Remove check_op.h from base/logging.h
2023-10-17 pkasting Add base::StrCat().

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Bug: 1371963
Change-Id: I19a74661930c733814403c9813fe544fe0540b1f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4953853
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Bug: 1371963
Change-Id: Ic3cc2010e48c399de8d19b94c3b515b53e2d18a3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4953795
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Change-Id: I645d6136788ca4ccebfc73005c8c2455dc4b2cee
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4949671
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rich Mckeever <mckeever@google.com>
…_path

Fixes a pending issue when we eventually move to C++20.

Original author: Dean Sturtevant

Change-Id: I7bb0648c73df6b6a28a3a4debdb4524d3cd27b38
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4979733
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Eric Astor <epastor@google.com>
…bdbe49 (1 commit) + changes

https://chromium.googlesource.com/chromium/mini_chromium/+log/707c87bd258d..98bbdbe49f4a

$ git log 707c87bd2..98bbdbe49 --date=short --no-merges --format='%ad %ae %s'
2023-10-27 avi Update ScopedTypeRef

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

---

In addition, change implicit unwrapping of ScopedCFTypeRef to be
explicit.

Bug: chromium:1495438, chromium:1495439
Change-Id: I47dd12f94f71caaad74cf23be9da9d03a59772db
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4984741
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
…abled."

This reverts commit e17518a.

Reason for revert:

When trying to roll Crashpad into Chromium, all the new tests in
this CL fail; https://crrev.com/c/4984643?checksRunsSelected=win-rel&tab=checks

Original change's description:
> Add an option to start a Windows client with global hooks disabled.
>
> Change-Id: I645d6136788ca4ccebfc73005c8c2455dc4b2cee
> Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4949671
> Reviewed-by: Mark Mentovai <mark@chromium.org>
> Commit-Queue: Rich Mckeever <mckeever@google.com>

Change-Id: I3a41238cf0960899fac19d1e6d0ed0e527dfe13f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4985124
Reviewed-by: Mark Mentovai <mark@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
These are slightly frustrating. First, when a struct is packed, some of
its fields may be underaligned. This is fine for direct access
(foo.bar), but if one takes the address if the field, this creates an
unaligned pointer. Dereferencing that pointer is then UB. (I'm not sure
if creating that pointer is UB.)

Crashpad seemingly doesn't do this, but it uses EXPECT_EQ from GTest.
EXPECT_EQ seems to internally take pointers to its arguments. I'm
guessing it binds them by const reference. This then trips UBSan. To
avoid this, we can copy the value into a temporary before passing to
EXPECT_EQ.

Second, the test to divide by 0 to trigger SIGFPE is undefined behavior.
The compiler is not actually obligated to trip SIGFPE. UBSan prints one
of its errors instead. Instead, since this file is only built on POSIX
anyway, use GCC inline assembly to do the division. That one is
well-defined.

Finally, casting a string to uint32_t* is undefined both by alignment
and by strict aliasing (although Chromium doesn't enable the latter).
Instead, type-punning should be done with memcpy.

Bug: chromium:1394755
Change-Id: I79108773a04ac26f5189e7b88a0acbf62eb4401d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4985905
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
memcpy and memchr on NULL, 0 is UB due to a C language bug. Instead, use
the C++ functions, which do not have this bug.

Bug: chromium:1394755
Change-Id: I82023aa038c53905f9867c635b26f3b26d9994f5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4987148
Commit-Queue: David Benjamin <davidben@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
This CL implements a const iterator to allow for iteration over a const
AnnotationList. This way, the annotation list can passed as a const
reference in search only situations.

Change-Id: I53bd7871f3d914e7e7e627b6b464aa7fa79597f4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4984053
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Andre Kempe <andre.kempe@arm.com>
Call __cxa_free_exception after __cxa_allocate_exception usage.

Change-Id: I0cd5043b945652e6ac28c3bf79486c071d3aa09e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4990028
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Do not rely on base/logging.h to provide it.

Change-Id: I8b7d733bcf66abe9b46eabd3703b7ed549d02db7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5007844
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
…b10118 (1 commit)

https://chromium.googlesource.com/chromium/mini_chromium/+log/e508a6010e25..450b101187b5

$ git log e508a6010..450b10118 --date=short --no-merges --format='%ad %ae %s'
2023-11-06 pkasting Rename WCHAR_T_IS_UTF* to WCHAR_T_IS_*BIT

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Change-Id: Id39911a5dbd1275199400848428ab024bb62cf2a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5008818
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Bug: chromium:691162
Change-Id: I2d34bcfd3b97d59d1811183d62b893b875b08bb4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5010942
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
@supervacuus supervacuus requested a review from a team as a code owner November 25, 2023 10:06
@supervacuus supervacuus merged commit e63d0c2 into getsentry Nov 27, 2023
4 checks passed
@supervacuus supervacuus deleted the meta/update branch November 27, 2023 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet