1629 Commits

Author SHA1 Message Date
Casey Dahlin
64399c514f Implement Exception context for minidump
Bug: crashpad:10
Change-Id: I90d72d813da11d25c1ed13a51daacec9b0ad4a0f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1753063
Commit-Queue: Casey Dahlin <sadmac@google.com>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2019-08-15 20:52:54 +00:00
Mike Frysinger
8edbc7439b codereview.settings: stop forcing squashing
There's no reason this needs to be forced on users.  All other
repos have dropped it, and git-cl itself will be dropping it.

Bug: 993518
Change-Id: Iebbb3ba7c36c3eaa5620fd918ca9a55724740bea
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1756663
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
2019-08-15 20:30:14 +00:00
Vlad Tsyrklevich
5a4c2f2b83 Plumb in support for ProcessMemorySanitized
A previous change added a ProcessMemorySanitized class, in this change
plumb support for ProcessMemorySanitized into ProcessSnapshotSanitized.
This involves reading whitelisted regions using the a new field in the
SanitizationInformation struct and returning an initialized
ProcessMemorySanitized object from ProcessSnapshotSanitized::Memory().

Bug: crashpad:263, chromium:973167
Change-Id: I121c5a584a1704ad043757c113099978a9ec2f4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1754737
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-08-15 20:06:14 +00:00
Peter Collingbourne
6225d78906 Don't use a regex to test the CPU vendor string.
This test will break if there is an unusual character in the vendor
string. Moreover, std::regex is banned in Chromium so the test is
blocking the roll.

Probably all that can meaningfully be tested here is that the vendor
string is non-empty, so do that instead.

Change-Id: I60ea52e1b52c4d8e467518d03088815dcb5e3fce
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1756327
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Collingbourne <pcc@chromium.org>
2019-08-15 17:31:04 +00:00
Vlad Tsyrklevich
bde5196af5 Add ProcessMemorySanitized
The ProcessMemorySanitized implementation only allows reads to a given
process if it falls within a given whitelist of memory ranges. This
ensures that 'sanitized' snapshots only allow reading memory that was
explicitly allowed.

Bug: crashpad:263, chromium:973167
Change-Id: I72712d7ea3cabfd49cc91ffbe563cb349e6fcfdb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1752593
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-08-15 00:02:53 +00:00
Vlad Tsyrklevich
5a0e18e417 Refactor 'whitelist' -> 'annotations whitelist'
In preparation for an upcoming change that will introduce a second
whitelist (for memory ranges), rename variables/functions to explicitly
reference the annotations whitelist.

Bug: chromium:973167
Change-Id: I1bf232e370990571230a247f9d9022d56ba4fedf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1752361
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-08-14 23:22:43 +00:00
Scott Graham
a34bca8611 Disable warning when building gmock tests
On recent clang builds, some gmock tests are failing to build:

FAILED: obj/third_party/gtest/gtest/googlemock/test/gmock_all_test.gmock-actions_test.o
../../third_party/linux/clang/linux-amd64/bin/clang++ -MMD -MF obj/third_party/gtest/gtest/googlemock/test/gmock_all_test.gmock-actions_test.o.d -D_FILE_OFFSET_BITS=64 -DGUNIT_NO_GOOGLE3=1 -I../../third_party/gtest/gtest/googlemock -I../../third_party/gtest/gtest/googletest -I../../third_party/gtest/gtest/googlemock/include -I../../third_party/gtest/gtest/googletest/include -Wall -Wendif-labels -Werror -Wextra -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wsign-compare -fno-exceptions -fno-rtti -fno-strict-aliasing -fobjc-call-cxx-cdtors -fstack-protector-all -fvisibility-inlines-hidden -fvisibility=hidden -Wheader-hygiene -Wnewline-eof -Wstring-conversion -stdlib=libstdc++ -fPIC -Wimplicit-fallthrough --sysroot=../../third_party/linux/sysroot -pthread -Wexit-time-destructors -Wno-unused-private-field -std=c++14 -Wno-inconsistent-missing-override -c ../../third_party/gtest/gtest/googlemock/test/gmock-actions_test.cc -o obj/third_party/gtest/gtest/googlemock/test/gmock_all_test.gmock-actions_test.o
../../third_party/gtest/gtest/googlemock/test/gmock-actions_test.cc:109:37: error: 'wchar_t' cannot be signed or unsigned [-Wsigned-unsigned-wchar]
  EXPECT_EQ(0U, BuiltInDefaultValue<unsigned wchar_t>::Get());
                                    ^
...

Disable this warning for now.

Change-Id: Ibd41a6fc12d1f13eca5227775e2559ccf3baf229
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1754722
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-08-14 21:50:03 +00:00
Peter Collingbourne
08f070325e Fix the build with NDK r20.
NDK r20 provides a declaration of android_get_device_api_level() at API level
29, and an inline definition at older API levels. The latter conflicts with
crashpad's definition, so stop defining it if the NDK is new enough.

Bug: chromium:891999
Change-Id: If58542c9d6b5315f823f2509f168f2cb79141e3f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1739512
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-08-14 17:11:05 +00:00
Venkatesh Srinivas
70d10eb629 client_win: Switch Release Load/Acq Store->Rel Store/Acq Load
client_win used a non-standard/poorly defined "Acquire Store" and
"Release Load" pair to have handlers notify when they changed
state and to wait for handlers to change state. Acquire stores
and Release Loads are not expressable in C++11 atomics and even at
face value did not provide useful semantics here (code waiting for a
handler to change state wants to see the handler's stores.)

Change-Id: I8d08d0d7baf9979406557ec2b90fea4cd51892bc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1741716
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-08-07 18:00:43 +00:00
Wesley Aptekar-Cassels
da3384a708 Fuchsia: remove fuchsia.net.SocketProvider from cmx
fuchsia.net.SocketProvider has been replaced by fuchsia.net.NameLookup
and fuchsia.posix.socket.Provider.

Change-Id: I03e16b4bf432b1560a1b9f9415fc79a94854ad27
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1739507
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-08-06 20:27:13 +00:00
Scott Graham
1b2f448720 Fuchsia: de-port generate_dump
generate_dump is not being used on Fuchsia (because only the system-reporter
version of Fuchsia Crashpad is actively used).

GetProcessFromKoid() is becoming increasingly difficult to implement, so simply
de-port generate_dump until we actually need it again in the future (if ever).

Removes GetRootJob().

Change-Id: Ib5e5d8e79177506da4b2e0e0382f3fdd2502840b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1726695
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Francois Rousseau <frousseau@google.com>
2019-07-31 15:43:46 +00:00
Scott Graham
2faae40e8e Fuchsia: Update docs to mention target_os in .gclient
Change-Id: I1f26373413d7f427cc7081a1221e5d7238b5fd97
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1726696
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-07-31 05:34:26 +00:00
Francois Rousseau
8b8066297c [fuchsia] remove obsolete FIDL string.cc include
the code moved to string.h and the SDK no longer includes that source file

TESTED=fix the broken Fuchsia bots

Change-Id: I2ad39e6bc4d90e7a79ab380899bd20a84d0df465
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1724907
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Francois Rousseau <frousseau@google.com>
2019-07-30 17:57:45 +00:00
Istvan Romai
63782c8333 Added Windows on ARM support to SystemSnapshot::CPUVendor
Bug: crashpad:297
Change-Id: I1430f86986efdd7bc3c5494ce1838653c64524d6
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1647167
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-07-24 14:01:42 +00:00
Istvan Romai
e163efb372 Added CPU revision implementation for ARM64
Change-Id: I42e6c76715dfd44fa87c8bbd56b8903f76cef87c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1655468
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-07-23 18:42:19 +00:00
Vlad Tsyrklevich
2fb8f98d67 Add external CrashpadHandlerMain declaration
External callers might also want to call CrashpadHandlerMain, so provide
an externally visibile declaration on Android.

Bug: 973167
Change-Id: Ib9c2a2070e87563acd8af25f8634f1c88ce6681f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1707897
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-07-18 16:07:43 +00:00
Adam Kallai
79b59b0a8f Add support for capture CPU context on Windows on ARM64
Most Crashpad builds use Microsoft's armasm64.exe macro assembler
for .asm source files. When building in Chromium, clang-cl is used
as the assembler instead. Since the two assemblers recognize different
assembly dialects, the same .asm file can't be used for each.
As a workaround, use a prebuilt .obj file when the Microsoft-dialect
assembler isn't available.

The obj file is generated from the capture_context_win_arm64.asm
by armasm64 macro assembler. If this asm file is modified,
the obj file needs to be updated.

Change-Id: Id5a4a949997a27b04815aeb79b2540d30a52d34c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1632749
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-07-17 18:08:42 +00:00
Vlad Tsyrklevich
4f0a0f5d36 Make ExceptionHandlerServer::keep_running_ atomic
ExceptionHandlerServer::keep_running_ is used to implement
synchronization across threads (e.g. ExceptionHandlerServer::Stop)
but the variable is not atomic. This causes TSan failures and could
also lead to incorrect compiler optimizations.

Bug: crashpad:304
Change-Id: I3cf5c083d70b6be903e16dbb6feb8fecea2aa1b8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1706793
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-07-17 16:57:11 +00:00
Vlad Tsyrklevich
a079d8b15b Fix TSan failure
Start the server thread after setting the ptrace strategy pointer,
otherwise TSan can't tell that the access is synchronized by the order
of operations in the test.

Bug: crashpad:304
Change-Id: I8be975916eba4e6cb933634596702df07d45219a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1706792
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-07-17 16:50:01 +00:00
Joshua Peraza
c05bd0574b include missing header
Change-Id: I64d248aecbf894da88ea95d70320d91368967832
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1702845
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2019-07-15 22:31:56 +00:00
Vlad Tsyrklevich
b946fdd438 Refactor CrashpadHandlerMain into its own target
Currently crashpad's CrashpadHandlerMain can not be overridden. Change
it to be in its own target so that implementers can override it if they
so choose.

Bug: chromium:973167
Change-Id: Ie44eac24c54948154ff550072560732faf621739
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1682932
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-07-15 18:49:06 +00:00
David Pursell
137506bf1e [fuchsia] transition off deprecated exception APIs
Removes the remaining references to the old port-based exception APIs in
favor of the new channel-based APIs.

Bug: fuchsia:ZX-4031
Test: runtests on emulator and device
Change-Id: Ieac5b66c2f676966d1018d771cab6c8635f12a8f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1700321
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Francois Rousseau <frousseau@google.com>
2019-07-12 19:32:53 +00:00
Joshua Peraza
cc8fe9ddab Implement ProcessSnapshotMinidump time getters
Bug: crashpad:10
Change-Id: I0e1449017c60c237eef50818e33cb70e3bfe9b23
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1697057
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-07-11 20:46:22 +00:00
Mark Mentovai
1bd77324ac Update mini_chromium to 6ad086b2b6ed3b3169226ee9f311eb2332f332c2
37fd48e63701 Explicitly include stddef.h for size_t
b36c61ed9299 Switch to GNU-style strerror_r when needed on Android
6ad086b2b6ed win: Change armasm64 command line arguments

Change-Id: I90bb2368be0148d5fc6faa13f2627012aec56966
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1686711
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-07-08 17:11:16 +00:00
Vlad Tsyrklevich
0f2e2064a1 Disable ProcessReaderLinux.ChildWithSplitStack under ASan
Change-Id: Ibaee389e64d6e54133a4fb7f4d05cfde0a529821
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1684673
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-07-02 06:09:47 +00:00
Vlad Tsyrklevich
1644b7724d Add missing build/build_config.h include
Change-Id: I1fa215d0d7c3925c27cf45702634269f4f6f2322
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1684438
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-07-01 22:43:26 +00:00
Vlad Tsyrklevich
b19842d25c Fix MSan failures
Bug: 932205
Change-Id: Ic31986d270634e42bf8c2620f37c434a4cb79b33
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1474271
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2019-06-28 23:00:24 +00:00
Tamir Duberstein
c68e99cb2d [all] add fuchsia.{net.NameLookup,posix.socket.Provider}
These services will replace fuchsia.net.SocketProvider.

Bug: chromium:979080
Change-Id: I8399910e43665f73df40e94ede267c5097997ae7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1680062
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-06-28 21:40:35 +00:00
Scott Graham
b1dbfc65be Fuchsia: Update SDK build from cpp to cc
Fuchsia recently globally renamed all .cpp to .cc and some of that leaks
out into the SDK.

Change-Id: Id04c7e18cde77674dc6c1a40f9e378bb182951c8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1682767
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-06-28 21:31:44 +00:00
Joshua Peraza
d98690a182 android: enable upload
This patch also updates WorkerThread to execute DoWork() when
DoWorkNow() has been called, which is relevant when DoWorkNow() and
Stop() have both been called. This occurs regularly on Android where
the handler's current normal mode is to dump a single process and exit.
This change ensures the upload thread has a chance to upload the report
before the handler exits.

This change should not affect upload on Chrome/WebView/Chromecast which
don't pass Crashpad a --url option and are still responsible for their
own uploads.

Change-Id: Ie5553eafc13714f0438b4b133a92516f7abec153
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1643710
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-06-18 22:07:14 +00:00
Oliver Hunt
de22b8d050 Opt tests into the ambient-replace-as-executable feature
Bug: fuchsia:SEC-307

Just adding this feature as a pre-flight step while we
restrict the ability for arbitrary processes to make
VMOs executable.

Change-Id: I4ccdad44855f300edb4e5cbd0b89d5be230a7b4a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1659947
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-06-14 19:43:00 +00:00
Francois Rousseau
3a6f57178a [fuchsia] clean up exception handler overload with exception port
* Fuchsia migrated its call site to the overload without the exception
port as the resume from exception is done outside of Crashpad now
* the overload with the koids and the exception port is kept for the
standalone Crashpad exception server and handler

Bug: fuchsia:ZX-4031
Change-Id: Iec220e2c9bb7b14bdb37b6c008b4fa354dba241d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1659943
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Francois Rousseau <frousseau@google.com>
2019-06-14 16:47:00 +00:00
Clark DuVall
e5abe92b2e Add user minidump stream support for ELF
This is very similar to the windows implementation in
module_snapshot_win.cc.

Bug: crashpad:95
Change-Id: I3858e8bb0009c95395bfb7ca3855c3d937fd49d5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1641588
Commit-Queue: Clark DuVall <cduvall@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-06-11 17:20:05 +00:00
Clark DuVall
d85f898a69 Refactor MemorySnapshotGeneric to use ProcessMemory instead of ProcessReader
Also remove MemorySnapshotWin since the code is identical to
MemorySnapshotGeneric now.

Bug: crashpad:95
Change-Id: I9a631f8eb206dd72a69158021db87e8db41c5913
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1642148
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
Commit-Queue: Clark DuVall <cduvall@chromium.org>
2019-06-10 20:34:12 +00:00
Erik Chen
e0e83ad18a Use explicit paths when using hermetic toolchain.
Previously, both the invocation to mig and mig's internal code would use xcrun
to locate binaries. When we're using the hermetic toolchain, we want to
explicitly specify the binaries to use and we want to avoid calls to xcrun.

Bug: chromium:971452
Change-Id: I8527368e0846bc72789e6454fcd626b028d297ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1650147
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-06-07 19:23:49 +00:00
Fabrice de Gans-Riberi
4920d248fe Roll gtest to da10da05c262af0a9e8fa91789a272a3dec67655.
This includes a change to the fdio_pipe_half() Fuchsia API that is
necessary to deprecate the old version of the API.

Bug: chromium:972118
Change-Id: If9e9de397064cd5cc5709e787e8ba3b02e7b1942
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1650142
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
2019-06-07 18:18:39 +00:00
Adam Barth
76e761f7a6 [fuchsia] Switch to fdio_pipe_half
fdio_pipe_half2 and fdio_pipe_half are now the same. We can complete the
migration by switching back to the cleaner name.

Change-Id: Ibf2ab290300e37adbb19df60f7b4869e8150ec5b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1643209
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Adam Barth <abarth@chromium.org>
2019-06-04 19:15:46 +00:00
Adam Kallai
c5f296c044 Disable CPUX86SupportsDAZ unit test on Windows ARM64
This unit test is related to X86 CPU Family, it could be disabled on ARM64.

Bug: None
Test: Run crashpad_tests, it's disabled on ARM64
Change-Id: I7ebe5dd7d8964e8efd0ebcd96944e5981f8b7606
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1634772
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-06-03 13:51:37 +00:00
Julie Hockett
3e5da31f90 Remove non-source files from library
Recent changes to GN mean that non-source files in final targets are an
error. Since they were ignored previously, this should be an NFC.

See crbug.com/gn/77 for details.

Change-Id: Ifc845a3b3b044e71ab4086ab19748adb7b4d4d08
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1632676
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-05-28 19:08:16 +00:00
Scott Graham
ee1d5124a2 Fix incorrect range checks in elf image note reader
Overflows before and after padding could cause the max note size check
to be evaded.

Bug: chromium:967228, chromium: 967257, chromium:967223
Change-Id: I499a273e76e78529fc59ddcb74055be6d01fa2cb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1631635
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-05-28 18:23:11 +00:00
Scott Graham
daf9f5669e Fix unchecked allocation size of in fuzzer note reading
This fixes a fuzzer-only bug, and modifies the note API so that it can
no longer request infinitely sized notes.

Bug: chromium:966303
Change-Id: I97b9ca6774d3101560caddf2f9b0a8d7ecf7c2e2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1628675
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-05-24 20:20:27 +00:00
Scott Graham
122363ccae Fix compile for Linux 32b fuzz target
This code was previously not enabled, but was turned on recently.
However, there's no CQ check for 32 bit code.

Bug: chromium:966292
Change-Id: I4a3205d8517575e25d3e525f247ad45a906c3e25
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1627679
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-05-23 17:37:08 +00:00
Julie Hockett
7b01557606 Remove non-source files
Recent changes to GN require only buildable files to be included in
sources. See crbug.com/gn/77 for additional details.

Change-Id: Ie3012fa5ae68a0886819647435fecb1d9c3d7aea
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1623149
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2019-05-21 21:04:01 +00:00
Adam Barth
5ea6551bae [fuchsia] Update to fdio_pipe_half2
fdio_pipe_half is being replaced with fdio_pipe_half2.

Change-Id: I01294f01692b0a90c00815ad02b6c30e41edba07
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1623147
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Adam Barth <abarth@chromium.org>
2019-05-21 20:14:00 +00:00
Roland McGrath
bc9104541f [fidl] Convert from - to . names for //zircon/public/fidl
This is part of a soft transition to replace fuchsia-foo-bar names
with fuchsia.foo.bar names for the directory and GN target names for
FIDL libraries defined in //zircon/system/fidl and accessed in legacy
GN via //zircon/public/fidl.  After the transition, the directory and
GN target names will exactly match the FIDL library names everywhere.
 1. Make //zircon/public/fidl/a.b.c alias //zircon/public/fidl/a-b-c
 2. Convert all //zircon/public/fidl uses outside fuchsia.git & integrate
 3. Convert all //zircon/public/fidl uses inside fuchsia.git
 4. Remove transition hacks
 5. Enforce naming conventions in GN templates
This is step 2.

Bug: ZX-3365 #comment //third_party/crashpad references converted
Change-Id: Ief90c6f9fa1da51dea7dbbd5b58741cbb7e06891
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1608163
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Roland McGrath <mcgrathr@chromium.org>
2019-05-16 23:49:37 +00:00
Adam Kallai
949a022939 win: Fix 64-bit detection in ProcessInfo
The ProcessInfo initialization fails on ARM on Windows with
'ReadProcessData failed'.

The 64-bit detection logic only checks whether it's on x64 and ignores
ARM64. On ARM64, the ReadProcessData template should be instantiated
with internal::Traits64 as it is on x64.

Test: Run crashpad_tests on ARM, 'ReadProcessData failed' is gone
Change-Id: I0f47d8601a39aaa1b8ba07d34d1f41b7739233e7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1615024
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-05-16 22:22:37 +00:00
David Pursell
d221b7cada [fuchsia] add a non-resuming exception API
While switching over to the new channel-based exception APIs, we decided
it probably no longer makes sense for crashpad to resume from exception
itself, but instead let the caller do it.

The first step is adding these new non-resuming APIs, and once callers
have been switched over we will remove the existing port-based APIs.

Bug: fuchsia:ZX-4031
Test: runtests
Change-Id: I79a833479f4e5e57bce4baebc61e1b3f9faf70a4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1597730
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Francois Rousseau <frousseau@google.com>
2019-05-07 17:50:58 +00:00
Scott Graham
02a3bf6e27 fuchsia: Tidy up return ZX_TASK_RETCODE_EXCEPTION_KILL after soft transition
Bug: fuchsia:ZX-3473
Change-Id: Iad57d46e6eaffea96f276ce0e73ea87e812b488c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1599728
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-05-07 17:19:58 +00:00
Scott Graham
856d40e220 Roll gtest to 3f5b5b8f
This should fix the Fuchsia build due to an SDK API change that affected
googletest.

Change-Id: I9d72c11d660f053a96d326de4e1763ec7b85c7a4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1597729
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2019-05-06 22:41:29 +00:00
Jonathan Metzman
18aa41d48c [libFuzzer] Enable fuzz targets to build in Chromium
Enable building elf_image_reader_fuzzer in Chromium.
Rename it to crashpad_elf_image_reader_fuzzer so that its clearer
where the fuzzer comes from.
Import chromium's fuzzer_test definition when building in Chromium and
make sure fuzzer is only built on Linux since it breaks fuzzer build
on Win (and maybe Mac?).

Bug: 950093
Change-Id: I8afc104d26871311b04931b82a1600614a81bfc8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1597091
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2019-05-06 22:02:56 +00:00