mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-26 23:01:05 +08:00
doc: Standardize on “macOS” in comments
Use “macOS” as the generic unversioned name of the operating system in comments. For version-specific references, use Mac OS X through 10.6, OS X from 10.7 through 10.11, and macOS for 10.12. Change-Id: I1ebee64fbf79200bc799d4a351725dd73257b54d Reviewed-on: https://chromium-review.googlesource.com/408269 Reviewed-by: Robert Sesek <rsesek@chromium.org>
This commit is contained in:
parent
8e3e65178a
commit
952f787f4a
@ -44,11 +44,11 @@ class CrashpadClient {
|
||||
//! \brief Starts a Crashpad handler process, performing any necessary
|
||||
//! handshake to configure it.
|
||||
//!
|
||||
//! This method directs crashes to the Crashpad handler. On Mac OS X, this
|
||||
//! is applicable to this process and all child processes. On Windows, child
|
||||
//! processes must also register by using SetHandlerIPCPipe().
|
||||
//! This method directs crashes to the Crashpad handler. On macOS, this is
|
||||
//! applicable to this process and all subsequent child processes. On Windows,
|
||||
//! child processes must also register by using SetHandlerIPCPipe().
|
||||
//!
|
||||
//! On Mac OS X, this method starts a Crashpad handler and obtains a Mach send
|
||||
//! On macOS, this method starts a Crashpad handler and obtains a Mach send
|
||||
//! right corresponding to a receive right held by the handler process. The
|
||||
//! handler process runs an exception server on this port. This method sets
|
||||
//! the task’s exception port for `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD`
|
||||
@ -56,8 +56,8 @@ class CrashpadClient {
|
||||
//! with behavior `EXCEPTION_STATE_IDENTITY | MACH_EXCEPTION_CODES` and thread
|
||||
//! state flavor `MACHINE_THREAD_STATE`. Exception ports are inherited, so a
|
||||
//! Crashpad handler started here will remain the handler for any child
|
||||
//! processes created after StartHandler() is called. Child processes do not
|
||||
//! need to call StartHandler() or be aware of Crashpad in any way. The
|
||||
//! processes created after StartHandler() is called. These child processes do
|
||||
//! not need to call StartHandler() or be aware of Crashpad in any way. The
|
||||
//! Crashpad handler will receive crashes from child processes that have
|
||||
//! inherited it as their exception handler even after the process that called
|
||||
//! StartHandler() exits.
|
||||
@ -109,7 +109,7 @@ class CrashpadClient {
|
||||
//! \brief Sets the process’ crash handler to a Mach service registered with
|
||||
//! the bootstrap server.
|
||||
//!
|
||||
//! This method is only defined on OS X.
|
||||
//! This method is only defined on macOS.
|
||||
//!
|
||||
//! See StartHandler() for more detail on how the port and handler are
|
||||
//! configured.
|
||||
@ -122,7 +122,7 @@ class CrashpadClient {
|
||||
|
||||
//! \brief Sets the process’ crash handler to a Mach port.
|
||||
//!
|
||||
//! This method is only defined on OS X.
|
||||
//! This method is only defined on macOS.
|
||||
//!
|
||||
//! See StartHandler() for more detail on how the port and handler are
|
||||
//! configured.
|
||||
@ -234,7 +234,7 @@ class CrashpadClient {
|
||||
//! \brief Configures the process to direct its crashes to the default handler
|
||||
//! for the operating system.
|
||||
//!
|
||||
//! On OS X, this sets the task’s exception port as in SetHandlerMachPort(),
|
||||
//! On macOS, this sets the task’s exception port as in SetHandlerMachPort(),
|
||||
//! but the exception handler used is obtained from
|
||||
//! SystemCrashReporterHandler(). If the system’s crash reporter handler
|
||||
//! cannot be determined or set, the task’s exception ports for crash-type
|
||||
|
@ -72,11 +72,11 @@ using GetSegmentDataType =
|
||||
|
||||
extern "C" {
|
||||
|
||||
// These implementations look up their functions in libmacho at run time. If
|
||||
// the system libmacho provides these functions as it normally does on Mac OS X
|
||||
// 10.7 and later, the system’s versions are used directly. Otherwise, the
|
||||
// versions in third_party/apple_cctools are used, which are actually just
|
||||
// copies of the system’s functions.
|
||||
// These implementations look up their functions in libmacho at run time. If the
|
||||
// system libmacho provides these functions as it normally does on OS X 10.7 and
|
||||
// later, the system’s versions are used directly. Otherwise, the versions in
|
||||
// third_party/apple_cctools are used, which are actually just copies of the
|
||||
// system’s functions.
|
||||
|
||||
uint8_t* getsectiondata(const MachHeader* mhp,
|
||||
const char* segname,
|
||||
|
@ -279,21 +279,21 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_SYSTEM_INFO {
|
||||
//! component.
|
||||
//!
|
||||
//! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `6`.
|
||||
//! - For Mac OS X 10.9.2, this would be `10`.
|
||||
//! - For macOS 10.12.1, this would be `10`.
|
||||
uint32_t MajorVersion;
|
||||
|
||||
//! \brief The system’s operating system version number’s second (minor)
|
||||
//! component.
|
||||
//!
|
||||
//! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `1`.
|
||||
//! - For Mac OS X 10.9.2, this would be `9`.
|
||||
//! - For macOS 10.12.1, this would be `12`.
|
||||
uint32_t MinorVersion;
|
||||
|
||||
//! \brief The system’s operating system version number’s third (build or
|
||||
//! patch) component.
|
||||
//!
|
||||
//! - For Windows 7 (NT 6.1) SP1, version 6.1.7601, this would be `7601`.
|
||||
//! - For Mac OS X 10.9.2, this would be `2`.
|
||||
//! - For macOS 10.12.1, this would be `1`.
|
||||
uint32_t BuildNumber;
|
||||
|
||||
//! \brief The system’s operating system family. This may be a \ref
|
||||
@ -311,9 +311,9 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_SYSTEM_INFO {
|
||||
//! - On Windows, this is the name of the installed operating system service
|
||||
//! pack, such as “Service Pack 1”. If no service pack is installed, this
|
||||
//! field references an empty string.
|
||||
//! - On Mac OS X, this is the operating system build number from `sw_vers
|
||||
//! -buildVersion`. For Mac OS X 10.9.2 on most hardware types, this would
|
||||
//! be `13C64`.
|
||||
//! - On macOS, this is the operating system build number from `sw_vers
|
||||
//! -buildVersion`. For macOS 10.12.1 on most hardware types, this would
|
||||
//! be `16B2657`.
|
||||
//! - On Linux and other Unix-like systems, this is the kernel version from
|
||||
//! `uname -srvm`, possibly with additional information appended. On
|
||||
//! Android, the `ro.build.fingerprint` system property is appended.
|
||||
@ -417,7 +417,7 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
|
||||
//! \brief The top-level exception code identifying the exception, in
|
||||
//! operating system-specific values.
|
||||
//!
|
||||
//! For Mac OS X minidumps, this will be an \ref EXC_x "EXC_*" exception type,
|
||||
//! For macOS minidumps, this will be an \ref EXC_x "EXC_*" exception type,
|
||||
//! such as `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions
|
||||
//! processed as `EXC_CRASH` when generated from another preceding exception:
|
||||
//! the original exception code will appear instead. The exception type as it
|
||||
@ -427,7 +427,7 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
|
||||
//! exception type, such as `EXCEPTION_ACCESS_VIOLATION`.
|
||||
//!
|
||||
//! \note This field is named ExceptionCode, but what is known as the
|
||||
//! “exception code” on Mac OS X/Mach is actually stored in the
|
||||
//! “exception code” on macOS/Mach is actually stored in the
|
||||
//! #ExceptionFlags field of a minidump file.
|
||||
//!
|
||||
//! \todo Document the possible values by OS. There may be OS-specific enums
|
||||
@ -437,16 +437,16 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
|
||||
//! \brief Additional exception flags that further identify the exception, in
|
||||
//! operating system-specific values.
|
||||
//!
|
||||
//! For Mac OS X minidumps, this will be the value of the exception code at
|
||||
//! index 0 as received by a Mach exception handler, except:
|
||||
//! For macOS minidumps, this will be the value of the exception code at index
|
||||
//! 0 as received by a Mach exception handler, except:
|
||||
//! * For exception type `EXC_CRASH` generated from another preceding
|
||||
//! exception, the original exception code will appear here, not the code
|
||||
//! as received by the Mach exception handler.
|
||||
//! * For exception types `EXC_RESOURCE` and `EXC_GUARD`, the high 32 bits of
|
||||
//! the code received by the Mach exception handler will appear here.
|
||||
//!
|
||||
//! In all cases for Mac OS X minidumps, the code as it was received by the
|
||||
//! Mach exception handler will appear at index 1 of #ExceptionInformation.
|
||||
//! In all cases for macOS minidumps, the code as it was received by the Mach
|
||||
//! exception handler will appear at index 1 of #ExceptionInformation.
|
||||
//!
|
||||
//! For Windows minidumps, this will either be `0` if the exception is
|
||||
//! continuable, or `EXCEPTION_NONCONTINUABLE` to indicate a noncontinuable
|
||||
@ -475,12 +475,12 @@ struct __attribute__((packed, aligned(4))) MINIDUMP_EXCEPTION {
|
||||
//! \brief Additional information about the exception, specific to the
|
||||
//! operating system and possibly the #ExceptionCode.
|
||||
//!
|
||||
//! For Mac OS X minidumps, this will contain the exception type as received
|
||||
//! by a Mach exception handler and the values of the `codes[0]` and
|
||||
//! `codes[1]` (exception code and subcode) parameters supplied to the Mach
|
||||
//! exception handler. Unlike #ExceptionCode and #ExceptionFlags, the values
|
||||
//! received by a Mach exception handler are used directly here even for the
|
||||
//! `EXC_CRASH`, `EXC_RESOURCE`, and `EXC_GUARD` exception types.
|
||||
//! For macOS minidumps, this will contain the exception type as received by a
|
||||
//! Mach exception handler and the values of the `codes[0]` and `codes[1]`
|
||||
//! (exception code and subcode) parameters supplied to the Mach exception
|
||||
//! handler. Unlike #ExceptionCode and #ExceptionFlags, the values received by
|
||||
//! a Mach exception handler are used directly here even for the `EXC_CRASH`,
|
||||
//! `EXC_RESOURCE`, and `EXC_GUARD` exception types.
|
||||
|
||||
//! For Windows, these are additional arguments (if any) as provided to
|
||||
//! `RaiseException()`.
|
||||
|
@ -209,7 +209,7 @@ enum MinidumpOS : uint32_t {
|
||||
|
||||
kMinidumpOSUnix = 0x8000,
|
||||
|
||||
//! \brief Mac OS X, Darwin for traditional systems.
|
||||
//! \brief macOS, Darwin for traditional systems.
|
||||
kMinidumpOSMacOSX = 0x8101,
|
||||
|
||||
//! \brief iOS, Darwin for mobile devices.
|
||||
|
@ -68,8 +68,8 @@ std::string BuildString(const SystemSnapshot* system_snapshot) {
|
||||
#if defined(OS_MACOSX)
|
||||
// Converts the value of the MAC_OS_VERSION_MIN_REQUIRED or
|
||||
// MAC_OS_X_VERSION_MAX_ALLOWED macro from <AvailabilityMacros.h> to a number
|
||||
// identifying the minor Mac OS X version that it represents. For example, with
|
||||
// an argument of MAC_OS_X_VERSION_10_6, this function will return 6.
|
||||
// identifying the minor macOS version that it represents. For example, with an
|
||||
// argument of MAC_OS_X_VERSION_10_6, this function will return 6.
|
||||
int AvailabilityVersionToMacOSXMinorVersion(int availability) {
|
||||
// Through MAC_OS_X_VERSION_10_9, the minor version is the tens digit.
|
||||
if (availability >= 1000 && availability <= 1099) {
|
||||
|
@ -133,7 +133,7 @@ struct CPUContextX86_64 {
|
||||
uint16_t fop; // FPU opcode
|
||||
union {
|
||||
// The expression of these union members is determined by the use of
|
||||
// fxsave/fxrstor or fxsave64/fxrstor64 (fxsaveq/fxrstorq). Mac OS X and
|
||||
// fxsave/fxrstor or fxsave64/fxrstor64 (fxsaveq/fxrstorq). macOS and
|
||||
// Windows systems use the traditional fxsave/fxrstor structure.
|
||||
struct {
|
||||
// fxsave/fxrstor
|
||||
|
@ -50,7 +50,7 @@ class ExceptionSnapshot {
|
||||
//!
|
||||
//! This is an operating system-specific value.
|
||||
//!
|
||||
//! For Mac OS X, this will be an \ref EXC_x "EXC_*" exception type, such as
|
||||
//! For macOS, this will be an \ref EXC_x "EXC_*" exception type, such as
|
||||
//! `EXC_BAD_ACCESS`. `EXC_CRASH` will not appear here for exceptions
|
||||
//! processed as `EXC_CRASH` when generated from another preceding exception:
|
||||
//! the original exception code will appear instead. The exception type as it
|
||||
@ -64,7 +64,7 @@ class ExceptionSnapshot {
|
||||
//!
|
||||
//! This is an operating system-specific value.
|
||||
//!
|
||||
//! For Mac OS X, this will be the value of the exception code at index 0 as
|
||||
//! For macOS, this will be the value of the exception code at index 0 as
|
||||
//! received by a Mach exception handler, except:
|
||||
//! * For `EXC_CRASH` exceptions generated from another preceding exception,
|
||||
//! the original exception code will appear here, not the code as received
|
||||
@ -72,7 +72,7 @@ class ExceptionSnapshot {
|
||||
//! * For `EXC_RESOURCE` and `EXC_GUARD` exceptions, the high 32 bits of the
|
||||
//! exception code at index 0 will appear here.
|
||||
//!
|
||||
//! In all cases on Mac OS X, the full exception code at index 0 as it was
|
||||
//! In all cases on macOS, the full exception code at index 0 as it was
|
||||
//! received will appear at index 1 of Codes().
|
||||
//!
|
||||
//! On Windows, this will either be `0` if the exception is continuable, or
|
||||
@ -85,7 +85,7 @@ class ExceptionSnapshot {
|
||||
//! the instruction pointer that contained an offending instruction. For
|
||||
//! exceptions where this value cannot be determined, it will be `0`.
|
||||
//!
|
||||
//! For Mac OS X, this will be the value of the exception code at index 1 as
|
||||
//! For macOS, this will be the value of the exception code at index 1 as
|
||||
//! received by a Mach exception handler.
|
||||
virtual uint64_t ExceptionAddress() const = 0;
|
||||
|
||||
@ -97,7 +97,7 @@ class ExceptionSnapshot {
|
||||
//! they may not be present at all. In this case, an empty vector will be
|
||||
//! returned.
|
||||
//!
|
||||
//! For Mac OS X, this will be a vector containing the original exception type
|
||||
//! For macOS, this will be a vector containing the original exception type
|
||||
//! and the values of `code[0]` and `code[1]` as received by a Mach exception
|
||||
//! handler.
|
||||
//!
|
||||
|
@ -27,7 +27,7 @@ namespace internal {
|
||||
#if defined(ARCH_CPU_X86_FAMILY) || DOXYGEN
|
||||
|
||||
//! \brief Initializes a CPUContextX86 structure from native context structures
|
||||
//! on Mac OS X.
|
||||
//! on macOS.
|
||||
//!
|
||||
//! \a flavor, \a state, and \a state_count may be supplied by exception
|
||||
//! handlers in order for the \a context parameter to be initialized by the
|
||||
@ -68,7 +68,7 @@ void InitializeCPUContextX86(CPUContextX86* context,
|
||||
const x86_debug_state32_t* x86_debug_state32);
|
||||
|
||||
//! \brief Initializes a CPUContextX86_64 structure from native context
|
||||
//! structures on Mac OS X.
|
||||
//! structures on macOS.
|
||||
//!
|
||||
//! \a flavor, \a state, and \a state_count may be supplied by exception
|
||||
//! handlers in order for the \a context parameter to be initialized by the
|
||||
|
@ -34,7 +34,7 @@ class ProcessReader;
|
||||
namespace internal {
|
||||
|
||||
//! \brief An ExceptionSnapshot of an exception sustained by a running (or
|
||||
//! crashed) process on a Mac OS X system.
|
||||
//! crashed) process on a macOS system.
|
||||
class ExceptionSnapshotMac final : public ExceptionSnapshot {
|
||||
public:
|
||||
ExceptionSnapshotMac();
|
||||
|
@ -199,8 +199,8 @@ class TestMachOImageAnnotationsReader final
|
||||
for (const std::string& annotation : all_annotations_vector) {
|
||||
// Look for the expectation as a leading susbtring, because the actual
|
||||
// string that dyld uses will have the contents of the
|
||||
// DYLD_INSERT_LIBRARIES environment variable appended to it on Mac
|
||||
// OS X 10.10.
|
||||
// DYLD_INSERT_LIBRARIES environment variable appended to it on OS X
|
||||
// 10.10.
|
||||
if (annotation.substr(0, expected_annotation.length()) ==
|
||||
expected_annotation) {
|
||||
found = true;
|
||||
@ -217,8 +217,8 @@ class TestMachOImageAnnotationsReader final
|
||||
bool found = false;
|
||||
for (const std::string& annotation : all_annotations_vector) {
|
||||
// Look for the expectation as a leading substring, because the actual
|
||||
// string will contain the library’s pathname and, on Mac OS X 10.9
|
||||
// and later, a reason.
|
||||
// string will contain the library’s pathname and, on OS X 10.9 and
|
||||
// later, a reason.
|
||||
if (annotation.substr(0, expected_annotation_length) ==
|
||||
kExpectedAnnotation) {
|
||||
found = true;
|
||||
|
@ -27,7 +27,7 @@ namespace crashpad {
|
||||
namespace internal {
|
||||
|
||||
//! \brief A MemorySnapshot of a memory region in a process on the running
|
||||
//! system, when the system runs Mac OS X.
|
||||
//! system, when the system runs macOS.
|
||||
class MemorySnapshotMac final : public MemorySnapshot {
|
||||
public:
|
||||
MemorySnapshotMac();
|
||||
|
@ -587,7 +587,7 @@ class ScopedOpenCLNoOpKernel {
|
||||
ASSERT_EQ(CL_SUCCESS, rv) << "clCreateContext";
|
||||
|
||||
// The goal of the program in |sources| is to produce a cl_kernels image
|
||||
// that doesn’t strictly conform to Mach-O expectations. On Mac OS X 10.10,
|
||||
// that doesn’t strictly conform to Mach-O expectations. On OS X 10.10,
|
||||
// cl_kernels modules show up with an __LD,__compact_unwind section, showing
|
||||
// up in the __TEXT segment. MachOImageSegmentReader would normally reject
|
||||
// modules for this problem, but a special exception is made when this
|
||||
|
@ -46,8 +46,8 @@
|
||||
|
||||
namespace crashpad {
|
||||
|
||||
//! \brief A ProcessSnapshot of a running (or crashed) process running on a Mac
|
||||
//! OS X system.
|
||||
//! \brief A ProcessSnapshot of a running (or crashed) process running on a
|
||||
//! macOS system.
|
||||
class ProcessSnapshotMac final : public ProcessSnapshot {
|
||||
public:
|
||||
ProcessSnapshotMac();
|
||||
@ -83,21 +83,21 @@ class ProcessSnapshotMac final : public ProcessSnapshot {
|
||||
|
||||
//! \brief Sets the value to be returned by ReportID().
|
||||
//!
|
||||
//! On Mac OS X, the crash report ID is under the control of the snapshot
|
||||
//! On macOS, the crash report ID is under the control of the snapshot
|
||||
//! producer, which may call this method to set the report ID. If this is not
|
||||
//! done, ReportID() will return an identifier consisting entirely of zeroes.
|
||||
void SetReportID(const UUID& report_id) { report_id_ = report_id; }
|
||||
|
||||
//! \brief Sets the value to be returned by ClientID().
|
||||
//!
|
||||
//! On Mac OS X, the client ID is under the control of the snapshot producer,
|
||||
//! On macOS, the client ID is under the control of the snapshot producer,
|
||||
//! which may call this method to set the client ID. If this is not done,
|
||||
//! ClientID() will return an identifier consisting entirely of zeroes.
|
||||
void SetClientID(const UUID& client_id) { client_id_ = client_id; }
|
||||
|
||||
//! \brief Sets the value to be returned by AnnotationsSimpleMap().
|
||||
//!
|
||||
//! On Mac OS X, all process annotations are under the control of the snapshot
|
||||
//! On macOS, all process annotations are under the control of the snapshot
|
||||
//! producer, which may call this method to establish these annotations.
|
||||
//! Contrast this with module annotations, which are under the control of the
|
||||
//! process being snapshotted.
|
||||
|
@ -43,7 +43,7 @@ PROCESS_TYPE_STRUCT_BEGIN(crashreporter_annotations_t)
|
||||
PROCESS_TYPE_STRUCT_MEMBER(uint64_t, version) // unsigned long
|
||||
PROCESS_TYPE_STRUCT_VERSIONED(crashreporter_annotations_t, version)
|
||||
|
||||
// Version 4 (Mac OS X 10.7)
|
||||
// Version 4 (OS X 10.7)
|
||||
PROCESS_TYPE_STRUCT_MEMBER(uint64_t, message) // char*
|
||||
PROCESS_TYPE_STRUCT_MEMBER(uint64_t, signature_string) // char*
|
||||
PROCESS_TYPE_STRUCT_MEMBER(uint64_t, backtrace) // char*
|
||||
|
@ -83,8 +83,8 @@ TEST(ProcessTypes, DyldImagesSelf) {
|
||||
dyld_info.all_image_info_addr);
|
||||
EXPECT_GT(dyld_info.all_image_info_size, 1u);
|
||||
|
||||
// This field is only present in the Mac OS X 10.7 SDK (at build time) and
|
||||
// kernel (at run time).
|
||||
// This field is only present in the OS X 10.7 SDK (at build time) and kernel
|
||||
// (at run time).
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
if (MacOSXMinorVersion() >= 7) {
|
||||
#if !defined(ARCH_CPU_64_BITS)
|
||||
|
@ -228,7 +228,7 @@ uint32_t SystemSnapshotMac::CPUX86Leaf7Features() const {
|
||||
INITIALIZATION_STATE_DCHECK_VALID(initialized_);
|
||||
|
||||
#if defined(ARCH_CPU_X86_FAMILY)
|
||||
// The machdep.cpu.leaf7_feature_bits sysctl isn’t supported prior to Mac OS X
|
||||
// The machdep.cpu.leaf7_feature_bits sysctl isn’t supported prior to OS X
|
||||
// 10.7, so read this by calling cpuid directly.
|
||||
//
|
||||
// machdep.cpu.max_basic could be used to check whether to read the leaf, but
|
||||
|
@ -33,7 +33,7 @@ class ProcessReader;
|
||||
namespace internal {
|
||||
|
||||
//! \brief A ThreadSnapshot of a thread in a running (or crashed) process on a
|
||||
//! Mac OS X system.
|
||||
//! macOS system.
|
||||
class ThreadSnapshotMac final : public ThreadSnapshot {
|
||||
public:
|
||||
ThreadSnapshotMac();
|
||||
|
@ -82,8 +82,8 @@ class ModuleSnapshot {
|
||||
//! \brief The module is a dynamic loader.
|
||||
//!
|
||||
//! This is the module responsible for loading other modules. This is
|
||||
//! normally `dyld` for Mac OS X and `ld.so` for Linux and other systems
|
||||
//! using ELF.
|
||||
//! normally `dyld` for macOS and `ld.so` for Linux and other systems using
|
||||
//! ELF.
|
||||
kModuleTypeDynamicLoader,
|
||||
};
|
||||
|
||||
@ -97,7 +97,7 @@ class ModuleSnapshot {
|
||||
//! \brief Returns the size that the module occupies in the snapshot process’
|
||||
//! address space, starting at its base address.
|
||||
//!
|
||||
//! For Mac OS X snapshots, this method only reports the size of the `__TEXT`
|
||||
//! For macOS snapshots, this method only reports the size of the `__TEXT`
|
||||
//! segment, because segments may not be loaded contiguously.
|
||||
virtual uint64_t Size() const = 0;
|
||||
|
||||
@ -113,7 +113,7 @@ class ModuleSnapshot {
|
||||
//! If no file version can be determined, the \a version_* parameters are set
|
||||
//! to `0`.
|
||||
//!
|
||||
//! For Mac OS X snapshots, this is taken from the module’s `LC_ID_DYLIB` load
|
||||
//! For macOS snapshots, this is taken from the module’s `LC_ID_DYLIB` load
|
||||
//! command for shared libraries, and is `0` for other module types.
|
||||
virtual void FileVersion(uint16_t* version_0,
|
||||
uint16_t* version_1,
|
||||
@ -125,8 +125,8 @@ class ModuleSnapshot {
|
||||
//! If no source version can be determined, the \a version_* parameters are
|
||||
//! set to `0`.
|
||||
//!
|
||||
//! For Mac OS X snapshots, this is taken from the module’s
|
||||
//! `LC_SOURCE_VERSION` load command.
|
||||
//! For macOS snapshots, this is taken from the module’s `LC_SOURCE_VERSION`
|
||||
//! load command.
|
||||
virtual void SourceVersion(uint16_t* version_0,
|
||||
uint16_t* version_1,
|
||||
uint16_t* version_2,
|
||||
@ -164,7 +164,7 @@ class ModuleSnapshot {
|
||||
//! are intended for diagnostic use, including crash analysis. A module may
|
||||
//! contain multiple annotations, so they are returned in a vector.
|
||||
//!
|
||||
//! For Mac OS X snapshots, these annotations are found by interpreting the
|
||||
//! For macOS snapshots, these annotations are found by interpreting the
|
||||
//! module’s `__DATA,__crash_info` section as `crashreporter_annotations_t`.
|
||||
//! System libraries using the crash reporter client interface may reference
|
||||
//! annotations in this structure. Additional annotations messages may be
|
||||
@ -183,7 +183,7 @@ class ModuleSnapshot {
|
||||
//! keys and values are strings. These are referred to in Chrome as “crash
|
||||
//! keys.”
|
||||
//!
|
||||
//! For Mac OS X snapshots, these annotations are found by interpreting the
|
||||
//! For macOS snapshots, these annotations are found by interpreting the
|
||||
//! `__DATA,crashpad_info` section as `CrashpadInfo`. Clients can use the
|
||||
//! Crashpad client interface to store annotations in this structure. Most
|
||||
//! annotations under the client’s direct control will be retrievable by this
|
||||
|
@ -36,7 +36,7 @@ class SystemSnapshot {
|
||||
//! \brief The snapshot system’s operating system is unknown.
|
||||
kOperatingSystemUnknown = 0,
|
||||
|
||||
//! \brief Mac OS X.
|
||||
//! \brief macOS.
|
||||
kOperatingSystemMacOSX,
|
||||
|
||||
//! \brief Windows.
|
||||
@ -198,21 +198,21 @@ class SystemSnapshot {
|
||||
//! in \a major, \a minor, \a bugfix, and \a build.
|
||||
//!
|
||||
//! \param[out] major The snapshot system’s operating system’s first (major)
|
||||
//! version number component. This would be `10` for Mac OS X 10.9.5, and
|
||||
//! version number component. This would be `10` for macOS 10.12.1, and
|
||||
//! `6` for Windows 7 (NT 6.1) SP1 version 6.1.7601.
|
||||
//! \param[out] minor The snapshot system’s operating system’s second (minor)
|
||||
//! version number component. This would be `9` for Mac OS X 10.9.5, and
|
||||
//! version number component. This would be `12` for macOS 10.12.1, and
|
||||
//! `1` for Windows 7 (NT 6.1) SP1 version 6.1.7601.
|
||||
//! \param[out] bugfix The snapshot system’s operating system’s third (bugfix)
|
||||
//! version number component. This would be `5` for Mac OS X 10.9.5, and
|
||||
//! version number component. This would be `1` for macOS 10.12.1, and
|
||||
//! `7601` for Windows 7 (NT 6.1) SP1 version 6.1.7601.
|
||||
//! \param[out] build A string further identifying an operating system
|
||||
//! version. For Mac OS X 10.9.5, this would be `"13F34"`. For Windows,
|
||||
//! version. For macOS 10.12.1, this would be `"16B2657"`. For Windows,
|
||||
//! this would be `"Service Pack 1"` if that service pack was installed.
|
||||
//! For Linux and other Unix-like systems, this would be the kernel
|
||||
//! version from `uname -srvm`, possibly with additional information
|
||||
//! appended. On Android, the `ro.build.fingerprint` system property would
|
||||
//! be appended.
|
||||
//! On Android, the `ro.build.fingerprint` system property would be
|
||||
//! appended. For Linux and other Unix-like systems, this would be the
|
||||
//! kernel version from `uname -srvm`, possibly with additional
|
||||
//! information appended.
|
||||
virtual void OSVersion(int* major,
|
||||
int* minor,
|
||||
int* bugfix,
|
||||
@ -221,17 +221,17 @@ class SystemSnapshot {
|
||||
//! \brief Returns the snapshot system’s full operating system version
|
||||
//! information in string format.
|
||||
//!
|
||||
//! For Mac OS X, the string contains values from the operating system and
|
||||
//! kernel. A Mac OS X 10.9.5 snapshot system would be identified as `"Mac OS
|
||||
//! X 10.9.5 (13F34); Darwin 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17
|
||||
//! 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"`.
|
||||
//! For macOS, the string contains values from the operating system and
|
||||
//! kernel. A macOS 10.12.1 system snapshot would be identified as `"Mac OS
|
||||
//! X 10.12.1 (16B2657); Darwin 16.1.0 Darwin Kernel Version 16.1.0: Wed Oct
|
||||
//! 19 20:31:56 PDT 2016; root:xnu-3789.21.4~4/RELEASE_X86_64 x86_64"`.
|
||||
virtual std::string OSVersionFull() const = 0;
|
||||
|
||||
//! \brief Returns a description of the snapshot system’s hardware in string
|
||||
//! format.
|
||||
//!
|
||||
//! For Mac OS X, the string contains the Mac model and board ID. A mid-2014
|
||||
//! 15" MacBook Pro would be identified as `"MacBookPro11,3
|
||||
//! For macOS, the string contains the Mac model and board ID. A mid-2014 15"
|
||||
//! MacBook Pro would be identified as `"MacBookPro11,3
|
||||
//! (Mac-2BD1B31983FE1663)"`.
|
||||
virtual std::string MachineDescription() const = 0;
|
||||
|
||||
|
10
third_party/apple_cctools/README.crashpad
vendored
10
third_party/apple_cctools/README.crashpad
vendored
@ -13,11 +13,11 @@ like ar, as, nm, strings, and strip, and platform-specific tools like lipo and
|
||||
otool. It also contains support libraries such as libmacho, which contains
|
||||
interfaces for dealing with Mach-O images.
|
||||
|
||||
libmacho is available on Mac OS X as a runtime library that is part of
|
||||
libSystem, but versions of libmacho included in operating system versions prior
|
||||
to Mac OS X 10.7 did not include the getsectiondata() and getsegmentdata()
|
||||
functions. This library is present here to provide implementations of these
|
||||
functions for systems that do not have them.
|
||||
libmacho is available on macOS as a runtime library that is part of libSystem,
|
||||
but versions of libmacho included in operating system versions prior to Mac OS X
|
||||
10.7 did not include the getsectiondata() and getsegmentdata() functions. This
|
||||
library is present here to provide implementations of these functions for
|
||||
systems that do not have them.
|
||||
|
||||
Crashpad code is not expected to use this library directly. It should use the
|
||||
getsectiondata() and getsegmentdata() wrappers in compat, which will use
|
||||
|
@ -27,9 +27,9 @@ namespace crashpad {
|
||||
//! \{
|
||||
//! \brief Wraps the `<launch.h>` function of the same name.
|
||||
//!
|
||||
//! The Mac OS X 10.10 SDK deprecates `<launch.h>`, although the functionality
|
||||
//! it provides is still useful. These wrappers allow the deprecated functions
|
||||
//! to be called without triggering deprecated-declaration warnings.
|
||||
//! The OS X 10.10 SDK deprecates `<launch.h>`, although the functionality it
|
||||
//! provides is still useful. These wrappers allow the deprecated functions to
|
||||
//! be called without triggering deprecated-declaration warnings.
|
||||
|
||||
inline launch_data_t LaunchDataAlloc(launch_data_type_t type) {
|
||||
return launch_data_alloc(type);
|
||||
|
@ -181,9 +181,8 @@ std::string IORegistryEntryDataPropertyAsString(io_registry_entry_t entry,
|
||||
namespace crashpad {
|
||||
|
||||
int MacOSXMinorVersion() {
|
||||
// The Darwin major version is always 4 greater than the Mac OS X minor
|
||||
// version for Darwin versions beginning with 6, corresponding to Mac OS X
|
||||
// 10.2.
|
||||
// The Darwin major version is always 4 greater than the macOS minor version
|
||||
// for Darwin versions beginning with 6, corresponding to Mac OS X 10.2.
|
||||
static int mac_os_x_minor_version = DarwinMajorVersion() - 4;
|
||||
DCHECK(mac_os_x_minor_version >= 2);
|
||||
return mac_os_x_minor_version;
|
||||
|
@ -21,8 +21,8 @@ namespace crashpad {
|
||||
|
||||
//! \brief Returns the version of the running operating system.
|
||||
//!
|
||||
//! \return The minor version of the operating system, such as `9` for Mac OS X
|
||||
//! 10.9.2.
|
||||
//! \return The minor version of the operating system, such as `12` for macOS
|
||||
//! 10.12.1.
|
||||
//!
|
||||
//! \note This is similar to the base::mac::IsOS*() family of functions, but
|
||||
//! is provided for situations where the caller needs to obtain version
|
||||
@ -35,17 +35,17 @@ int MacOSXMinorVersion();
|
||||
//! All parameters are required. No parameter may be `nullptr`.
|
||||
//!
|
||||
//! \param[out] major The major version of the operating system, such as `10`
|
||||
//! for Mac OS X 10.9.2.
|
||||
//! \param[out] minor The major version of the operating system, such as `9` for
|
||||
//! Mac OS X 10.9.2.
|
||||
//! \param[out] bugfix The bugfix version of the operating system, such as `2`
|
||||
//! for Mac OS X 10.9.2.
|
||||
//! \param[out] build The operating system’s build string, such as "13C64" for
|
||||
//! Mac OS X 10.9.2.
|
||||
//! \param[out] server `true` for a Mac OS X Server installation, `false`
|
||||
//! otherwise (for a desktop/laptop, client, or workstation system).
|
||||
//! for macOS 10.12.1.
|
||||
//! \param[out] minor The major version of the operating system, such as `12`
|
||||
//! for macOS 10.12.1.
|
||||
//! \param[out] bugfix The bugfix version of the operating system, such as `1`
|
||||
//! for macOS 10.12.1.
|
||||
//! \param[out] build The operating system’s build string, such as `"16B2657"`
|
||||
//! for macOS 10.12.1.
|
||||
//! \param[out] server `true` for a macOS Server installation, `false` otherwise
|
||||
//! (for a desktop/laptop, client, or workstation system).
|
||||
//! \param[out] version_string A string representing the full operating system
|
||||
//! version, such as `"Mac OS X 10.9.2 (13C64)"`.
|
||||
//! version, such as `"macOS 10.12.1 (16B2657)"`.
|
||||
//!
|
||||
//! \return `true` on success, `false` on failure, with an error message logged.
|
||||
//! A failure is considered to have occurred if any element could not be
|
||||
|
@ -28,8 +28,8 @@ namespace crashpad {
|
||||
//!
|
||||
//! \return `true` if the job was submitted successfully, otherwise `false`.
|
||||
//!
|
||||
//! \note This function is provided because `SMJobSubmit()` is deprecated in Mac
|
||||
//! OS X 10.10. It may or may not be implemented using `SMJobSubmit()` from
|
||||
//! \note This function is provided because `SMJobSubmit()` is deprecated in OS
|
||||
//! X 10.10. It may or may not be implemented using `SMJobSubmit()` from
|
||||
//! `ServiceManagement.framework`.
|
||||
bool ServiceManagementSubmitJob(CFDictionaryRef job_cf);
|
||||
|
||||
@ -42,12 +42,11 @@ bool ServiceManagementSubmitJob(CFDictionaryRef job_cf);
|
||||
//! \return `true` if the job was removed successfully or if an asynchronous
|
||||
//! attempt to remove the job was started successfully, otherwise `false`.
|
||||
//!
|
||||
//! \note This function is provided because `SMJobRemove()` is deprecated in Mac
|
||||
//! OS X 10.10. On Mac OS X 10.10, observed in DP8 14A361c, it also blocks
|
||||
//! for far too long (`_block_until_job_exits()` contains a one-second
|
||||
//! `sleep()`, filed as radar 18398683) and does not signal failure via its
|
||||
//! return value when asked to remove a nonexistent job (filed as radar
|
||||
//! 18268941).
|
||||
//! \note This function is provided because `SMJobRemove()` is deprecated in OS
|
||||
//! X 10.10. On OS X 10.10, observed in DP8 14A361c, it also blocks for far
|
||||
//! too long (`_block_until_job_exits()` contains a one-second `sleep()`,
|
||||
//! filed as radar 18398683) and does not signal failure via its return
|
||||
//! value when asked to remove a nonexistent job (filed as radar 18268941).
|
||||
bool ServiceManagementRemoveJob(const std::string& label, bool wait);
|
||||
|
||||
//! \brief Determines whether a specified job is loaded in the user launchd
|
||||
@ -60,7 +59,7 @@ bool ServiceManagementRemoveJob(const std::string& label, bool wait);
|
||||
//! \note A loaded job is not necessarily presently running, nor has it
|
||||
//! necessarily ever run in the past.
|
||||
//! \note This function is provided because `SMJobCopyDictionary()` is
|
||||
//! deprecated in Mac OS X 10.10. It may or may not be implemented using
|
||||
//! deprecated in OS X 10.10. It may or may not be implemented using
|
||||
//! `SMJobCopyDictionary()` from `ServiceManagement.framework`.
|
||||
bool ServiceManagementIsJobLoaded(const std::string& label);
|
||||
|
||||
@ -72,7 +71,7 @@ bool ServiceManagementIsJobLoaded(const std::string& label);
|
||||
//! \return The job’s process ID if running, otherwise `0`.
|
||||
//!
|
||||
//! \note This function is provided because `SMJobCopyDictionary()` is
|
||||
//! deprecated in Mac OS X 10.10. It may or may not be implemented using
|
||||
//! deprecated in OS X 10.10. It may or may not be implemented using
|
||||
//! `SMJobCopyDictionary()` from `ServiceManagement.framework`.
|
||||
pid_t ServiceManagementIsJobRunning(const std::string& label);
|
||||
|
||||
|
@ -117,8 +117,8 @@ bool WriteXattrInt(const base::FilePath& file,
|
||||
XattrStatus ReadXattrTimeT(const base::FilePath& file,
|
||||
const base::StringPiece& name,
|
||||
time_t* value) {
|
||||
// time_t on OS X is defined as a long, but it will be read into an
|
||||
// int64_t here, since there is no string conversion method for long.
|
||||
// time_t on macOS is defined as a long, but it will be read into an int64_t
|
||||
// here, since there is no string conversion method for long.
|
||||
std::string tmp;
|
||||
XattrStatus status;
|
||||
if ((status = ReadXattr(file, name, &tmp)) != XattrStatus::kOK)
|
||||
|
@ -29,9 +29,9 @@
|
||||
|
||||
extern "C" {
|
||||
|
||||
// proc_get_wakemon_params() is present in the Mac OS X 10.9 SDK, but no
|
||||
// declaration is provided. This provides a declaration and marks it for weak
|
||||
// import if the deployment target is below 10.9.
|
||||
// proc_get_wakemon_params() is present in the OS X 10.9 SDK, but no declaration
|
||||
// is provided. This provides a declaration and marks it for weak import if the
|
||||
// deployment target is below 10.9.
|
||||
int proc_get_wakemon_params(pid_t pid, int* rate_hz, int* flags)
|
||||
__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
|
||||
|
||||
@ -76,8 +76,8 @@ ProcGetWakemonParamsType GetProcGetWakemonParams() {
|
||||
namespace {
|
||||
|
||||
// Wraps proc_get_wakemon_params(), calling it if the system provides it. It’s
|
||||
// present on Mac OS X 10.9 and later. If it’s not available, sets errno to
|
||||
// ENOSYS and returns -1.
|
||||
// present on OS X 10.9 and later. If it’s not available, sets errno to ENOSYS
|
||||
// and returns -1.
|
||||
int ProcGetWakemonParams(pid_t pid, int* rate_hz, int* flags) {
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9
|
||||
// proc_get_wakemon_params() isn’t in the SDK. Look it up dynamically.
|
||||
@ -146,17 +146,17 @@ bool IsExceptionNonfatalResource(exception_type_t exception,
|
||||
// RLIMIT_CPU_USAGE_MONITOR as the second argument and CPUMON_MAKE_FATAL set
|
||||
// in the flags.
|
||||
if (MacOSXMinorVersion() >= 10) {
|
||||
// In Mac OS X 10.10, the exception code indicates whether the exception
|
||||
// is fatal. See 10.10 xnu-2782.1.97/osfmk/kern/thread.c
|
||||
// In OS X 10.10, the exception code indicates whether the exception is
|
||||
// fatal. See 10.10 xnu-2782.1.97/osfmk/kern/thread.c
|
||||
// THIS_THREAD_IS_CONSUMING_TOO_MUCH_CPU__SENDING_EXC_RESOURCE().
|
||||
return resource_flavor == FLAVOR_CPU_MONITOR;
|
||||
}
|
||||
|
||||
// In Mac OS X 10.9, there’s no way to determine whether the exception is
|
||||
// fatal. Unlike RESOURCE_TYPE_WAKEUPS below, there’s no way to determine
|
||||
// this outside the kernel. proc_rlimit_control()’s RLIMIT_CPU_USAGE_MONITOR
|
||||
// is the only interface to modify CPUMON_MAKE_FATAL, but it’s only able to
|
||||
// set this bit, not obtain its current value.
|
||||
// In OS X 10.9, there’s no way to determine whether the exception is fatal.
|
||||
// Unlike RESOURCE_TYPE_WAKEUPS below, there’s no way to determine this
|
||||
// outside the kernel. proc_rlimit_control()’s RLIMIT_CPU_USAGE_MONITOR is
|
||||
// the only interface to modify CPUMON_MAKE_FATAL, but it’s only able to set
|
||||
// this bit, not obtain its current value.
|
||||
//
|
||||
// Default to assuming that these exceptions are nonfatal. They are nonfatal
|
||||
// by default and no users of proc_rlimit_control() were found on 10.9.5
|
||||
|
@ -102,7 +102,7 @@ TEST(ExceptionTypes, IsExceptionNonfatalResource) {
|
||||
EXPECT_TRUE(IsExceptionNonfatalResource(EXC_RESOURCE, code, pid));
|
||||
|
||||
if (MacOSXMinorVersion() >= 10) {
|
||||
// FLAVOR_CPU_MONITOR_FATAL was introduced in Mac OS X 10.10.
|
||||
// FLAVOR_CPU_MONITOR_FATAL was introduced in OS X 10.10.
|
||||
code = 0;
|
||||
EXC_RESOURCE_ENCODE_TYPE(code, RESOURCE_TYPE_CPU);
|
||||
EXC_RESOURCE_ENCODE_FLAVOR(code, FLAVOR_CPU_MONITOR_FATAL);
|
||||
|
@ -147,7 +147,7 @@ mach_msg_return_t MachMessageServer::Run(Interface* interface,
|
||||
|
||||
// mach_msg_server() and mach_msg_server_once() would consider whether
|
||||
// |options| contains MACH_SEND_TRAILER and include MAX_TRAILER_SIZE in this
|
||||
// computation if it does, but that option is ineffective on OS X.
|
||||
// computation if it does, but that option is ineffective on macOS.
|
||||
const mach_msg_size_t reply_size = interface->MachMessageServerReplySize();
|
||||
DCHECK_GE(reply_size, sizeof(mach_msg_empty_send_t));
|
||||
const mach_msg_size_t reply_alloc = round_page(reply_size);
|
||||
|
@ -321,9 +321,9 @@ class TestMachMessageServer : public MachMessageServer::Interface,
|
||||
|
||||
kern_return_t kr;
|
||||
if (options_.child_send_all_requests_before_receiving_any_replies) {
|
||||
// On Mac OS X 10.10, the queue limit of a new Mach port seems to be 2
|
||||
// by default, which is below the value of MACH_PORT_QLIMIT_DEFAULT. Set
|
||||
// the port’s queue limit explicitly here.
|
||||
// On OS X 10.10, the queue limit of a new Mach port seems to be 2 by
|
||||
// default, which is below the value of MACH_PORT_QLIMIT_DEFAULT. Set the
|
||||
// port’s queue limit explicitly here.
|
||||
mach_port_limits limits = {};
|
||||
limits.mpl_qlimit = MACH_PORT_QLIMIT_DEFAULT;
|
||||
kr = mach_port_set_attributes(mach_task_self(),
|
||||
|
@ -89,12 +89,12 @@ class Metrics {
|
||||
|
||||
//! \brief Unexpected exception behavior.
|
||||
//!
|
||||
//! This value is only used on Mac OS X.
|
||||
//! This value is only used on macOS.
|
||||
kUnexpectedExceptionBehavior = 1,
|
||||
|
||||
//! \brief Failed due to attempt to suspend self.
|
||||
//!
|
||||
//! This value is only used on Mac OS X.
|
||||
//! This value is only used on macOS.
|
||||
kFailedDueToSuspendSelf = 2,
|
||||
|
||||
//! \brief The process snapshot could not be captured.
|
||||
|
@ -279,7 +279,7 @@ TEST(HTTPTransport, UnchunkedPlainText) {
|
||||
}
|
||||
|
||||
void RunUpload33k(bool has_content_length) {
|
||||
// On OS X, NSMutableURLRequest winds up calling into a CFReadStream’s Read()
|
||||
// On macOS, NSMutableURLRequest winds up calling into a CFReadStream’s Read()
|
||||
// callback with a 32kB buffer. Make sure that it’s able to get everything
|
||||
// when enough is available to fill this buffer, requiring more than one
|
||||
// Read().
|
||||
|
@ -28,8 +28,8 @@ namespace crashpad {
|
||||
//!
|
||||
//! Unlike the BSD function, this function may not close file descriptors
|
||||
//! immediately, but may instead mark them as close-on-exec. The actual behavior
|
||||
//! chosen is specific to the operating system. On Mac OS X, file descriptors
|
||||
//! are marked close-on-exec instead of being closed outright in order to avoid
|
||||
//! chosen is specific to the operating system. On macOS, file descriptors are
|
||||
//! marked close-on-exec instead of being closed outright in order to avoid
|
||||
//! raising `EXC_GUARD` exceptions for guarded file descriptors that are
|
||||
//! protected against `close()`.
|
||||
//!
|
||||
|
@ -31,10 +31,10 @@ void DropPrivileges() {
|
||||
// is set not equal to the real ID. This code never specifies -1, so the
|
||||
// setreuid() and setregid() alone should work according to the standard.
|
||||
//
|
||||
// In practice, on Mac OS X, setuid() and setgid() (or seteuid() and
|
||||
// setegid()) must be called first. Otherwise, setreuid() and setregid() do
|
||||
// not alter the saved IDs, leaving open the possibility for future privilege
|
||||
// escalation.
|
||||
// In practice, on older versions of macOS, setuid() and setgid() (or
|
||||
// seteuid() and setegid()) must be called first. Otherwise, setreuid() and
|
||||
// setregid() do not alter the saved IDs, leaving open the possibility for
|
||||
// future privilege escalation.
|
||||
//
|
||||
// The problem exists in 10.9.5 xnu-2422.115.4/bsd/kern/kern_prot.c
|
||||
// setreuid(). Based on its comments, it purports to set the svuid to the new
|
||||
@ -45,8 +45,8 @@ void DropPrivileges() {
|
||||
// is different from the desired euid. The workaround of calling setuid() or
|
||||
// seteuid() before setreuid() works because it sets the euid so that by the
|
||||
// time setreuid() runs, the old euid is actually the value that ought to be
|
||||
// set as the svuid. setregid() is similar. This bug is filed as radar
|
||||
// 18987552.
|
||||
// set as the svuid. setregid() is similar. This bug was reported as radar
|
||||
// 18987552, fixed in 10.10.3 and security updates to 10.9.5 and 10.8.5.
|
||||
//
|
||||
// setuid() and setgid() alone will only set the saved IDs when running as
|
||||
// root. When running a setuid non-root or setgid program, they do not alter
|
||||
|
Loading…
x
Reference in New Issue
Block a user