mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 09:45:19 +08:00
fix: kernel: cnode: use checked shift right when matching guard
This commit is contained in:
parent
b62c378a38
commit
acaa1b9f46
@ -108,7 +108,8 @@ impl<'a> CNodeCap<'a> {
|
||||
});
|
||||
}
|
||||
|
||||
let get_guard = || (cap_ptr >> (bits_remaining - guard_bits)) & MASK!(guard_bits);
|
||||
let get_guard =
|
||||
|| cap_ptr.checked_shr((bits_remaining - guard_bits) as u32).unwrap_or_default() & MASK!(guard_bits);
|
||||
if guard_bits > bits_remaining || get_guard() != cap_guard {
|
||||
return Err(LookupFailure::GuardMismatch {
|
||||
bits_left: bits_remaining,
|
||||
|
Loading…
Reference in New Issue
Block a user