Commit e4577090 authored by Jeffrey Lee's avatar Jeffrey Lee

Make abort handling more robust

Detail:
  kernel/s/k_body - Update AbortFindHandler to check that SP & SL are both word aligned, especially because the code will attempt to load from SL to check for the stack chunk magic marker.
Admin:
  Tested on BB-xM
  Avoids some "abort while in abort handler" type scenarios if an abort occurs while SP/SL are invalid


Version 5.95. Tagged as 'RISC_OSLib-5_95'
parent 91926745
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.94"
Module_Version SETA 594
Module_MajorVersion SETS "5.95"
Module_Version SETA 595
Module_MinorVersion SETS ""
Module_Date SETS "29 Oct 2017"
Module_ApplicationDate SETS "29-Oct-17"
Module_Date SETS "14 Apr 2018"
Module_ApplicationDate SETS "14-Apr-18"
Module_ComponentName SETS "RISC_OSLib"
Module_ComponentPath SETS "castle/RiscOS/Sources/Lib/RISC_OSLib"
Module_FullVersion SETS "5.94"
Module_HelpVersion SETS "5.94 (29 Oct 2017)"
Module_FullVersion SETS "5.95"
Module_HelpVersion SETS "5.95 (14 Apr 2018)"
END
/* (5.94)
/* (5.95)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 5.94
#define Module_MajorVersion_CMHG 5.95
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 29 Oct 2017
#define Module_Date_CMHG 14 Apr 2018
#define Module_MajorVersion "5.94"
#define Module_Version 594
#define Module_MajorVersion "5.95"
#define Module_Version 595
#define Module_MinorVersion ""
#define Module_Date "29 Oct 2017"
#define Module_Date "14 Apr 2018"
#define Module_ApplicationDate "29-Oct-17"
#define Module_ApplicationDate "14-Apr-18"
#define Module_ComponentName "RISC_OSLib"
#define Module_ComponentPath "castle/RiscOS/Sources/Lib/RISC_OSLib"
#define Module_FullVersion "5.94"
#define Module_HelpVersion "5.94 (29 Oct 2017)"
#define Module_LibraryVersionInfo "5:94"
#define Module_FullVersion "5.95"
#define Module_HelpVersion "5.95 (14 Apr 2018)"
#define Module_LibraryVersionInfo "5:95"
......@@ -1072,6 +1072,11 @@ AbortFindHandler Keep
LDR r2, [v6, #O_heapLimit]
LDR r12, [v6, #O_registerDump+sp*4]
; Stack pointer and stack limit must both be word aligned
; Frame pointer might not be (bottom bit used as flag), so don't check for that (_kernel_unwind will check it before using it anyway)
TST r10, #3
TSTEQ r12, #3
BNE Trap_NoStackForHandler
CMP r12, r1
CMPHI r2, r12
ADDHI r1, r12, #256
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment