[haiku-commits] haiku: hrev54489 - src/system/kernel/arch/x86/64

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 5 Aug 2020 06:31:38 -0400 (EDT)

hrev54489 adds 1 changeset to branch 'master'
old head: daf10ef34051db2f97ac3a116c86a6828fab9d66
new head: d077ef8a1ae9ad1aed8fa67c19d11e42bee84dc7
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=d077ef8a1ae9+%5Edaf10ef34051

----------------------------------------------------------------------------

d077ef8a1ae9: better error message when xsave context is too small

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev54489
Commit:      d077ef8a1ae9ad1aed8fa67c19d11e42bee84dc7
URL:         https://git.haiku-os.org/haiku/commit/?id=d077ef8a1ae9
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Wed Aug  5 10:31:10 2020 UTC

----------------------------------------------------------------------------

1 file changed, 5 insertions(+), 1 deletion(-)
src/system/kernel/arch/x86/64/thread.cpp | 6 +++++-

----------------------------------------------------------------------------

diff --git a/src/system/kernel/arch/x86/64/thread.cpp 
b/src/system/kernel/arch/x86/64/thread.cpp
index e50c3a8fa2..f767ca0f16 100644
--- a/src/system/kernel/arch/x86/64/thread.cpp
+++ b/src/system/kernel/arch/x86/64/thread.cpp
@@ -144,7 +144,11 @@ arch_thread_init(kernel_args* args)
        // Save one global valid FPU state; it will be copied in the arch 
dependent
        // part of each new thread.
        if (gHasXsave || gHasXsavec) {
-               ASSERT(gFPUSaveLength <= sizeof(sInitialState.fpu_state));
+               if (gFPUSaveLength > sizeof(sInitialState.fpu_state)) {
+                       panic("XSAVE FPU context is larger than allowed "
+                               "(need at least %" B_PRIu64 " bytes)", 
gFPUSaveLength);
+                       return B_ERROR;
+               }
                memset(sInitialState.fpu_state, 0, gFPUSaveLength);
                if (gHasXsavec) {
                        asm volatile (


Other related posts:

  • » [haiku-commits] haiku: hrev54489 - src/system/kernel/arch/x86/64 - Adrien Destugues