Skip to content

Commit 486c2a4

Browse files
authored
Merge pull request #422 from Egggggg/master
Change Star::write() to use checked subtractions
2 parents 22066fa + 3222b10 commit 486c2a4

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/registers/model_specific.rs

+16-2
Original file line numberDiff line numberDiff line change
@@ -425,11 +425,25 @@ mod x86_64 {
425425
cs_syscall: SegmentSelector,
426426
ss_syscall: SegmentSelector,
427427
) -> 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 {
429443
return Err("Sysret CS and SS is not offset by 8.");
430444
}
431445

432-
if cs_syscall.0 != ss_syscall.0 - 8 {
446+
if cs_syscall_cmp != ss_syscall_cmp {
433447
return Err("Syscall CS and SS is not offset by 8.");
434448
}
435449

0 commit comments

Comments
 (0)