forked from Mirrors/opensbi
lib: sbi: sse: check handler entry to belong to supervisor mode
When registering an SSE event, check for the handler_entry_pc to belong to supervisor mode domain using sbi_domain_check_addr_range(). Signed-off-by: Clément Léger <cleger@rivosinc.com> Reported-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
bd007658f8
commit
033104da08
@@ -959,6 +959,12 @@ int sbi_sse_register(uint32_t event_id, unsigned long handler_entry_pc,
|
||||
if (handler_entry_pc & 0x1)
|
||||
return SBI_EINVAL;
|
||||
|
||||
if (!sbi_domain_check_addr_range(sbi_domain_thishart_ptr(),
|
||||
handler_entry_pc,
|
||||
sizeof(unsigned long), PRV_S,
|
||||
SBI_DOMAIN_EXECUTE))
|
||||
return SBI_EINVALID_ADDR;
|
||||
|
||||
e = sse_event_get(event_id);
|
||||
if (!e)
|
||||
return SBI_EINVAL;
|
||||
|
Reference in New Issue
Block a user