Vlad Tsyrklevich f2a07982ff Change edge case handling in ReadCStringInternal
Currently, TaskMemory::ReadCStringInternal() treats the
ReadCStringSizeLimited(size=0) case by returning an empty string;
however, that is inconsistent with the documentation for that function
and the equivalent implementation in ProcessMemory. The comment for the
size parameter is: "The maximum number of bytes to read. The string is
required to be `NUL`-terminated within this many bytes." My
interpretation is that the ProcessMemory behavior is correct in failing
on size=0 as a NUL can never be read.

ReadCStringSizeLimited() is only used with a possibly null size in
MachOImageReader::ReadDylinkerCommand(). In that case we read the
dylinker_command string, which appears to also be verified to be a
non-zero length null terminated string in load_dylinker() in
bsd/kern/mach_loader.c so we shouldn't hit this case in the wild.

Bug: crashpad:263
Change-Id: I2bd9c0ce3055154a98afdd19af95bb48d05f05a3
Reviewed-on: https://chromium-review.googlesource.com/c/1384448
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org>
2018-12-19 21:42:23 +00:00
2018-12-18 17:45:43 +00:00
2018-06-07 21:09:53 +00:00
2018-07-10 15:29:34 +00:00
2018-10-01 18:05:23 +00:00
2018-11-26 23:52:28 +00:00
2014-07-30 23:24:58 -04:00
2018-10-17 22:45:45 +00:00

Crashpad

Crashpad is a crash-reporting system.

Documentation

Source Code

Crashpads source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.

Description
A crash-reporting system
Readme Apache-2.0
Languages
C++ 92.6%
Objective-C++ 2.5%
C 2%
Python 1.7%
Assembly 0.9%
Other 0.3%