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
Sentry Patches #1
Open
jan-auer
wants to merge
559
commits into
master
Choose a base branch
from
getsentry
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
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
Swatinem
pushed a commit
that referenced
this pull request
Sep 10, 2020
__builtin_trap uses ud2 on x86_64, producing a SIGILL. On arm64, it uses brk #1, producing a SIGTRAP. Test expectations must be adjusted accordingly. Bug: crashpad:345 Test: crashpad_snapshot_test MachOImageAnnotationsReader.CrashModuleInitialization, crashpad_util_test ExcServerVariants.*,ExceptionPorts.* Change-Id: I22e75b7b48b8887031b1d95f1cea8a09733daf49 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386464 Commit-Queue: Mark Mentovai <[email protected]> Reviewed-by: Robert Sesek <[email protected]>
supervacuus
pushed a commit
to supervacuus/crashpad
that referenced
this pull request
Dec 12, 2022
…Body This bug was found when trying to upgrading the MSAN bots from Ubuntu 18.04 (where this codepath was not hit) to 20.04. The following MSAN error is produced when running HTTPTransport/HTTPTransport.* ==3496553==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x5616c540ad7d in __is_long buildtools/third_party/libc++/trunk/include/string:1674:33 getsentry#1 0x5616c540ad7d in size buildtools/third_party/libc++/trunk/include/string:1069:17 getsentry#2 0x5616c540ad7d in crashpad::(anonymous namespace)::HTTPTransportLibcurl::WriteResponseBody(char*, unsigned long, unsigned long, void*) third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc:528:50 ... SUMMARY: MemorySanitizer: use-of-uninitialized-value buildtools/third_party/libc++/trunk/include/string:1674:33 in __is_long ORIGIN: invalid (0). Might be a bug in MemorySanitizer origin tracking. The memory is initialized in http_transport_test.cc:293, but MSAN gets confused. Given the message output by MSAN (ORIGIN: invalid (0). Might be a bug in MemorySanitizer origin tracking), this appears to be a bug in MSAN, not crashpad, so this CL suppresses the error. Bug: chromium: 1260217 Change-Id: I2d6a46e3489816270cc1fee776793ffafe0147e4 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4015160 Reviewed-by: Joshua Peraza <[email protected]> Commit-Queue: Thomas Anderson <[email protected]>
Much of crashpad's unittests propagate tagged pointers to fuchsia syscalls which do not accept tagged values. Rather than fixing them all right now, just ensure that the tests do not build with the hwasan variant if enabled. Bug: fxbug.dev/108368 Change-Id: Ib32eb95ba671a6b55694075b68c7fbbb733cf501 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4175438 Reviewed-by: Francois Rousseau <[email protected]> Commit-Queue: Francois Rousseau <[email protected]>
Bug: chromium:1373664 Change-Id: I948eac3a46e8ad0d6fe70413111641e77c7ae57c Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4196074 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Leonard Grey <[email protected]>
On both mingw and MSVC (when targeting < Windows 10)
It looks like macOS 13 only *sometimes* puts __crash_info in __DATA_DIRTY. Instead of splitting by version check, let's just look in __DATA_DIRTY if we can't find it in __DATA. Bug: chromium:1372165 Change-Id: I99d2e759c66841d982039449e83f8658259d7ed1 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4197706 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Leonard Grey <[email protected]>
ARM64 supports storing pointer authentication codes in the upper bits of a pointer. This mask can be used by LLDB to mimic ptrauth_strip and strip the pointer authentication codes. To recover an address from pointer with an authentication code, `AND` this mask with the pointer. If the platform does not support pointer authentication, or the range of valid addressees for a pointer was unaccessible, this field will be 0 and should be ignored. Change-Id: Ie5cef90802dd1e892d456195ab8874223eac6a1b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2773358 Commit-Queue: Justin Cohen <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
This CL cleans up types and code style comments from post-submit code review comments on https://crrev.com/c/4023618 . I also added fixes for potential overflows in varint length decoding and included new tests. Bug: crashpad:437 Change-Id: I0a3585036028d81f42d0d36e87cce4264f4ed9ad Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4199705 Commit-Queue: Justin Cohen <[email protected]> Reviewed-by: Justin Cohen <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
This CL introduces a new class ScopedVMMap, a fork of ScopedVMRead which maps the memory using vm_remap() instead of reading it. This is useful for Annotations which use ScopedSpinGuard to protect reads from simultaneous writes; the in-process intermediate dump handler can try to take the spin guard when reading such an Annotation and skip reading it if it the spin guard could not be obtained. Change-Id: I60d7a48d1ba4e5d2dfdb44307b78b4d9ffb73560 Bug: crashpad:437 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4114550 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Ben Hamilton <[email protected]>
from documentation of `ProcessException` in `crashpad_wer.h`: ``` //! \param[in] handled_exceptions is an array of exception codes that the helper //! should pass on to crashpad handler (if possible). Pass nullptr and set //! num_handled_exceptions to 0 to pass every exception on to the crashpad //! handler. ``` fix the check to handle `num_handled_exceptions == 0` case to not filter out any exceptions. Bug: crashpad:439 Change-Id: Ic4559a730a26e37c7a8f13e6bcae7595d743924a Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4206503 Commit-Queue: Alex Gough <[email protected]> Reviewed-by: Alex Gough <[email protected]>
This CL optionally integrates ScopedSpinGuard (an atomic boolean) with crashpad::Annotation. Subclasses of Annotation can choose to integrate ScopedSpinGuard into their Set(...) methods to ensure reads and writes are serialized. I didn't integrate this into StringAnnotation in this CL, but it'd be pretty trivial to do in a follow-up. Change-Id: I1c5b8982576b03f9780a57acb7627c9194f8f0ff Bug: crashpad:437 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4022484 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Ben Hamilton <[email protected]> Reviewed-by: Robert Sesek <[email protected]>
This CL integrates the new ScopedSpinGuard with the new LengthDelimitedRingBuffer into a new class, RingBufferAnnotation. RingBufferAnnotation is thread-safe both for reading and writing, and is suitable for streaming logs, trace events, and other high-throughput data streams. I included a load test (ring_buffer_annotation_load_test) which launches two threads which simultaneously write to and read from the RingBufferAnnotation. By default, reads and writes are serialized using ScopedSpinGuard, but passing the flag "--disable_spin_guard" to the test disables the spin guard on the reading side (which is expected to make the test fail). Change-Id: Ic8e28866d085d57e778c4f86bcb7492ef0638ab9 Bug: crashpad:437 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4023619 Reviewed-by: Robert Sesek <[email protected]> Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Ben Hamilton <[email protected]>
Since iOS reads Annotations in-process, this CL updates the iOS intermediate dump handler to check each Annotation to see if it supports guarding concurrent reads and writes using ScopedSpinGuard. For any such Annotation, the in-process dump handler now tries (without spinning) to obtain the ScopedSpinGuard for the Annotation before reading its memory. If the ScopedSpinGuard cannot immediately be obtained, the in-process dump handler just skips writing the memory of the Annotation to the intermediate dump. (I'd like to follow up and thread down a Params object so we can experiment with adding an optional timeout to make this more reliable.) Change-Id: Ie6c9849fac94ab89b36364b07aea62326cabe552 Bug: crashpad:437 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4031730 Commit-Queue: Ben Hamilton <[email protected]> Reviewed-by: Mark Mentovai <[email protected]> Reviewed-by: Robert Sesek <[email protected]>
fix: make sure we reuse already found libcurl
mingw compilation fixes
meta: update 2023-02-07
Bug: 1415371 Change-Id: I9e1bd902494a664d4f07829e686803712fa8e7a8 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4255568 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Justin Cohen <[email protected]>
The test BaseAnnotationShouldNotSupportSpinGuard assumed NDEBUG builds always disabled DCHECK()s, but DCHECK_ALWAYS_ON overrides this. This CL fixes the test for NDEDBUG + DCHECK_ALWAYS_ON builds by using the DCHECK_IS_ON() macro to skip the test when DCHECKs are enabled. Change-Id: I7b64729568c5d3139ca777e27462d81eba931834 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4255429 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Ben Hamilton <[email protected]>
Co-authored-by: jernejstrasner <[email protected]>
* Add GAS version of capture_context_win_arm64.asm (for llvm-mingw) * Use capture_context_win_arm64.S on mingw targeting arm64 * ci: tweak build matrix * ci: add llvm-mingw x64 build * ci: add llvm-mingw arm64 build * compat/mingw/werapi.h: Fix compat with recent mingw headers * ci: Bump actions/checkout to v4 To fix "Node.js 16 actions are deprecated"
The latest build rules have the ffuchsia-api-level. Need https://crrev.com/c/5586319. Bug: fuchsia:42085580, fuchsia:327691011 Change-Id: I21383e02f9fff3db9405c0dbe42051122a325003 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5585353 Commit-Queue: Zijie He <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
This is a temporary workaround to avoid error like https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview Bug: 41489832 Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904 Commit-Queue: Takuto Ikuta <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
goma is not maintained anymore. Bug: 41489832 Change-Id: Ic82524205c7593ddba041c253e7d6283f9c89f33 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599864 Reviewed-by: Mark Mentovai <[email protected]> Commit-Queue: Takuto Ikuta <[email protected]>
This reverts commit a63adda. Reason for revert: This is not necessary after https://crrev.com/c/5585353. Original change's description: > DEPS: fix version of fuchsia/sdk/core to avoid build error > > This is a temporary workaround to avoid error like > https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview > > Bug: 41489832 > Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3 > Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904 > Commit-Queue: Takuto Ikuta <[email protected]> > Reviewed-by: Mark Mentovai <[email protected]> Bug: 41489832 Change-Id: I2c6d3c3008047a6f79fb3bfddd8240a758ee645a Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599914 Reviewed-by: Mark Mentovai <[email protected]> Bot-Commit: Rubber Stamper <[email protected]> Commit-Queue: Takuto Ikuta <[email protected]>
…shpad into chore/update_2024_06_11
feat: add socks proxy support
fix: add metadata pointer check
crashpad increasingly depends on C++20 features through its base-library `mini_chromium`. This change vendors a `mini_chromium` fork compatible with C++17 compilers and removes the dependency on `std::ranges` in the `crashpad` UUID utilities. * Update submodule * Provide UUID initializer for Windows and Linuxes * use fully-qualified names * Use base:byte_span_from_ref helper * Reset mini_chromium submodule to getsentry fork * Update mini_chromium ref to fork branch
* fix: update mini_chromium to remove a left-over <span> include * Introduce more Ubuntu versions to uncover breaking behavior on older compilers * now add clang runners * Disable attribute warning for crashpad_util * disable attribute errors for crashpad_compat too * disable warnings for tools and client * disable warnings at interface * further warnings in tools and client * disable ignored-attributes in handler * disable ignored-attributes in handler rather handler_lib * get rid of warnings compile options in targets that link interface * ignore pedantic around compat/linux/signal.h * remove ignored diagnostic from compat/linux/signal.h * update mini_chromium
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.
This PR contains patches for Sentry. Do not merge.