diff --git a/src/coreclr/pal/src/exception/machexception.cpp b/src/coreclr/pal/src/exception/machexception.cpp index eaf783a2331171..e3fd0de760ddbc 100644 --- a/src/coreclr/pal/src/exception/machexception.cpp +++ b/src/coreclr/pal/src/exception/machexception.cpp @@ -1325,7 +1325,7 @@ void MachExceptionInfo::RestoreState(mach_port_t thread) kern_return_t machret = thread_set_state(thread, x86_THREAD_STATE, (thread_state_t)&ThreadState, x86_THREAD_STATE_COUNT); CHECK_MACH("thread_set_state(thread)", machret); - machret = thread_set_state(thread, x86_FLOAT_STATE, (thread_state_t)&FloatState, x86_FLOAT_STATE_COUNT); + machret = thread_set_state(thread, FloatState.ash.flavor, (thread_state_t)&FloatState, FloatState.ash.count); CHECK_MACH("thread_set_state(float)", machret); machret = thread_set_state(thread, x86_DEBUG_STATE, (thread_state_t)&DebugState, x86_DEBUG_STATE_COUNT); diff --git a/src/coreclr/pal/src/exception/machmessage.h b/src/coreclr/pal/src/exception/machmessage.h index 194f066dce4cdd..e82e1c808d88ff 100644 --- a/src/coreclr/pal/src/exception/machmessage.h +++ b/src/coreclr/pal/src/exception/machmessage.h @@ -186,11 +186,6 @@ class MachMessage void ReplyToNotification(MachMessage& message, kern_return_t eResult); private: - // The maximum size in bytes of any Mach message we can send or receive. Calculating an exact size for - // this is non trivial (basically because of the security trailers that Mach appends) but the current - // value has proven to be more than enough so far. - static const size_t kcbMaxMessageSize = 1500; - // The following are structures describing the formats of the Mach messages we understand. // Request to set the register context on a particular thread. @@ -298,6 +293,9 @@ class MachMessage } data; } __attribute__((packed));; + // The maximum size in bytes of any Mach message we can send or receive including possible trailers + static const size_t kcbMaxMessageSize = sizeof(mach_message_t) + MAX_TRAILER_SIZE; + // Re-initializes this data structure (to the same state as default construction, containing no message). void ResetMessage();