File tree 1 file changed +16
-2
lines changed
1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -425,11 +425,25 @@ mod x86_64 {
425
425
cs_syscall : SegmentSelector ,
426
426
ss_syscall : SegmentSelector ,
427
427
) -> Result < ( ) , & ' static str > {
428
- if cs_sysret. 0 - 16 != ss_sysret. 0 - 8 {
428
+ let cs_sysret_cmp = cs_sysret
429
+ . 0
430
+ . checked_sub ( 16 )
431
+ . ok_or ( "Sysret CS is not at least 16." ) ?;
432
+ let ss_sysret_cmp = ss_sysret
433
+ . 0
434
+ . checked_sub ( 8 )
435
+ . ok_or ( "Sysret SS is not at least 8." ) ?;
436
+ let cs_syscall_cmp = cs_syscall. 0 ;
437
+ let ss_syscall_cmp = ss_syscall
438
+ . 0
439
+ . checked_sub ( 8 )
440
+ . ok_or ( "Syscall SS is not at least 8." ) ?;
441
+
442
+ if cs_sysret_cmp != ss_sysret_cmp {
429
443
return Err ( "Sysret CS and SS is not offset by 8." ) ;
430
444
}
431
445
432
- if cs_syscall . 0 != ss_syscall . 0 - 8 {
446
+ if cs_syscall_cmp != ss_syscall_cmp {
433
447
return Err ( "Syscall CS and SS is not offset by 8." ) ;
434
448
}
435
449
You can’t perform that action at this time.
0 commit comments