@@ -7,11 +7,10 @@ use ckb_vm_definitions::{
77 ISA_MOP , MEMORY_FRAME_PAGE_SHIFTS , MEMORY_FRAMESIZE , RISCV_GENERAL_REGISTER_NUMBER ,
88 RISCV_PAGE_SHIFTS ,
99 asm:: {
10- FixedTrace , InvokeData , RET_CYCLES_OVERFLOW , RET_DECODE_TRACE , RET_DYNAMIC_JUMP ,
11- RET_EBREAK , RET_ECALL , RET_INVALID_PERMISSION , RET_MAX_CYCLES_EXCEEDED , RET_OUT_OF_BOUND ,
12- RET_PAUSE , RET_SHADOW_STACK_LABEL_WRONG , RET_SHADOW_STACK_LPAD_NOT_4BYTE_ALIGNED ,
13- RET_SHADOW_STACK_NOT_LPAD , RET_SHADOW_STACK_STACK_OUT_OF_STACK ,
14- RET_SHADOW_STACK_VALUE_WRONG , RET_SLOWPATH ,
10+ FixedTrace , InvokeData , RET_CFI_LPAD_LABEL_MISMATCH , RET_CFI_LPAD_NOT_4BYTE_ALIGNED ,
11+ RET_CFI_LPAD_NOT_FOUND , RET_CFI_SS_OUT_OF_STACK , RET_CFI_SS_VALUE_FAULT ,
12+ RET_CYCLES_OVERFLOW , RET_DECODE_TRACE , RET_DYNAMIC_JUMP , RET_EBREAK , RET_ECALL ,
13+ RET_INVALID_PERMISSION , RET_MAX_CYCLES_EXCEEDED , RET_OUT_OF_BOUND , RET_PAUSE , RET_SLOWPATH ,
1514 } ,
1615} ;
1716use rand:: { SeedableRng , prelude:: RngCore } ;
@@ -154,7 +153,7 @@ where
154153 let size = Self :: REG :: BITS as usize / 8 ;
155154 let ( end, overflowed) = offset. overflowing_add ( size) ;
156155 if overflowed || end > DEFAULT_SHADOW_STACK_SIZE {
157- return Err ( Error :: ShadowStackOutOfStack ) ;
156+ return Err ( Error :: CFIShadowStackOutOfStack ) ;
158157 }
159158 let ra = self
160159 . as_ref ( )
@@ -172,7 +171,7 @@ where
172171 let size = Self :: REG :: BITS as usize / 8 ;
173172 let ( end, overflowed) = offset. overflowing_add ( size) ;
174173 if overflowed || end > DEFAULT_SHADOW_STACK_SIZE {
175- return Err ( Error :: ShadowStackOutOfStack ) ;
174+ return Err ( Error :: CFIShadowStackOutOfStack ) ;
176175 }
177176 let bytes = value. to_le_bytes ( ) . to_vec ( ) ;
178177 self . as_mut ( ) . shadow_stack [ offset..end] . copy_from_slice ( & bytes) ;
@@ -870,21 +869,21 @@ impl<R: AsmCoreMachineRevealer, D: TraceDecoder> DefaultMachineRunner for Abstra
870869 self . machine . pause . free ( ) ;
871870 return Err ( Error :: Pause ) ;
872871 }
873- RET_SHADOW_STACK_LPAD_NOT_4BYTE_ALIGNED => {
872+ RET_CFI_LPAD_NOT_4BYTE_ALIGNED => {
874873 // Should not be caught. The check occurs during the decoder phase.
875874 unreachable ! ( ) ;
876875 }
877- RET_SHADOW_STACK_NOT_LPAD => {
878- return Err ( Error :: ShadowStackNotLpad ) ;
876+ RET_CFI_LPAD_NOT_FOUND => {
877+ return Err ( Error :: CFILpadNotFound ) ;
879878 }
880- RET_SHADOW_STACK_LABEL_WRONG => {
881- return Err ( Error :: ShadowStackLabelWrong ) ;
879+ RET_CFI_LPAD_LABEL_MISMATCH => {
880+ return Err ( Error :: CFILpadLabelMismatched ) ;
882881 }
883- RET_SHADOW_STACK_VALUE_WRONG => {
884- return Err ( Error :: ShadowStackValueWrong ) ;
882+ RET_CFI_SS_VALUE_FAULT => {
883+ return Err ( Error :: CFIShadowStackValueFault ) ;
885884 }
886- RET_SHADOW_STACK_STACK_OUT_OF_STACK => {
887- return Err ( Error :: ShadowStackOutOfStack ) ;
885+ RET_CFI_SS_OUT_OF_STACK => {
886+ return Err ( Error :: CFIShadowStackOutOfStack ) ;
888887 }
889888 _ => return Err ( Error :: Asm ( result) ) ,
890889 }
@@ -949,21 +948,21 @@ impl<R: AsmCoreMachineRevealer, D: TraceDecoder> AbstractAsmMachine<R, D> {
949948 let instruction = decoder. decode ( self . machine . memory_mut ( ) , pc) ?;
950949 execute_instruction ( instruction, & mut self . machine ) ?;
951950 }
952- RET_SHADOW_STACK_LPAD_NOT_4BYTE_ALIGNED => {
951+ RET_CFI_LPAD_NOT_4BYTE_ALIGNED => {
953952 // Should not be caught. The check occurs during the decoder phase.
954953 unreachable ! ( ) ;
955954 }
956- RET_SHADOW_STACK_NOT_LPAD => {
957- return Err ( Error :: ShadowStackNotLpad ) ;
955+ RET_CFI_LPAD_NOT_FOUND => {
956+ return Err ( Error :: CFILpadNotFound ) ;
958957 }
959- RET_SHADOW_STACK_LABEL_WRONG => {
960- return Err ( Error :: ShadowStackLabelWrong ) ;
958+ RET_CFI_LPAD_LABEL_MISMATCH => {
959+ return Err ( Error :: CFILpadLabelMismatched ) ;
961960 }
962- RET_SHADOW_STACK_VALUE_WRONG => {
963- return Err ( Error :: ShadowStackValueWrong ) ;
961+ RET_CFI_SS_VALUE_FAULT => {
962+ return Err ( Error :: CFIShadowStackValueFault ) ;
964963 }
965- RET_SHADOW_STACK_STACK_OUT_OF_STACK => {
966- return Err ( Error :: ShadowStackOutOfStack ) ;
964+ RET_CFI_SS_OUT_OF_STACK => {
965+ return Err ( Error :: CFIShadowStackOutOfStack ) ;
967966 }
968967 _ => return Err ( Error :: Asm ( result) ) ,
969968 }
0 commit comments