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 (