Index: util/mach/exc_server_variants.cc |
diff --git a/util/mach/exc_server_variants.cc b/util/mach/exc_server_variants.cc |
index e5916c7db20fac744e75b735d996442b2ee2e8b7..c5a74a3b16bdaf9d33852935be10303a23b94125 100644 |
--- a/util/mach/exc_server_variants.cc |
+++ b/util/mach/exc_server_variants.cc |
@@ -14,12 +14,14 @@ |
#include "util/mach/exc_server_variants.h" |
+#include <AvailabilityMacros.h> |
#include <string.h> |
#include <algorithm> |
#include <vector> |
#include "base/logging.h" |
+#include "util/mac/mac_util.h" |
#include "util/mach/composite_mach_message_server.h" |
#include "util/mach/exc.h" |
#include "util/mach/exception_behaviors.h" |
@@ -767,8 +769,17 @@ mach_msg_size_t UniversalMachExcServer::MachMessageServerReplySize() { |
return impl_->MachMessageServerReplySize(); |
} |
-kern_return_t ExcServerSuccessfulReturnValue(exception_behavior_t behavior, |
+kern_return_t ExcServerSuccessfulReturnValue(exception_type_t exception, |
+ exception_behavior_t behavior, |
bool set_thread_state) { |
+ if (exception == EXC_CRASH |
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11 |
+ && MacOSXMinorVersion() >= 11 |
+#endif |
+ ) { |
+ return KERN_SUCCESS; |
+ } |
+ |
if (!set_thread_state && ExceptionBehaviorHasState(behavior)) { |
return MACH_RCV_PORT_DIED; |
} |