forked from chromium/crashpad
-
Notifications
You must be signed in to change notification settings - Fork 48
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
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 <[email protected]> Reviewed-by: Joshua Peraza <[email protected]> Commit-Queue: Alex Gough <[email protected]>
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 <[email protected]> Reviewed-by: Joshua Peraza <[email protected]>
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 <[email protected]> Commit-Queue: Mark Mentovai <[email protected]>
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 <[email protected]> Commit-Queue: Justin Cohen <[email protected]>
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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
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 <[email protected]> Commit-Queue: Rich Mckeever <[email protected]>
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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
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 <[email protected]> Commit-Queue: Leonard Grey <[email protected]>
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 <[email protected]> Reviewed-by: Robert Sesek <[email protected]>
Bug: 1371963 Change-Id: I7fa4557472684cdd2b8e0cc977230941f26f1eaa Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4943901 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Peter Kasting <[email protected]>
…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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
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 <[email protected]> Commit-Queue: Lei Zhang <[email protected]>
…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 <[email protected]> Commit-Queue: Peter Kasting <[email protected]>
Bug: 1371963 Change-Id: Ic3cc2010e48c399de8d19b94c3b515b53e2d18a3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4953795 Commit-Queue: Peter Kasting <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
Change-Id: I645d6136788ca4ccebfc73005c8c2455dc4b2cee Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4949671 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Rich Mckeever <[email protected]>
…_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 <[email protected]> Commit-Queue: Eric Astor <[email protected]>
…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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
…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 <[email protected]> > Commit-Queue: Rich Mckeever <[email protected]> Change-Id: I3a41238cf0960899fac19d1e6d0ed0e527dfe13f Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4985124 Reviewed-by: Mark Mentovai <[email protected]> Bot-Commit: Rubber Stamper <[email protected]> Commit-Queue: Avi Drissman <[email protected]>
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 <[email protected]> Commit-Queue: David Benjamin <[email protected]>
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 <[email protected]> Reviewed-by: Robert Sesek <[email protected]>
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 <[email protected]> Commit-Queue: Andre Kempe <[email protected]>
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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
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 <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
…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 <[email protected]> Commit-Queue: Peter Kasting <[email protected]>
Bug: chromium:691162 Change-Id: I2d34bcfd3b97d59d1811183d62b893b875b08bb4 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5010942 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Lei Zhang <[email protected]>
Swatinem
approved these changes
Nov 27, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.