mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-21 19:45:52 +00:00
Sanity resetting of Utcb words/items field.
Don't send words or mappings by accident. Reset the word/item counter.
This commit is contained in:
parent
7f93dae3ff
commit
d033b450f5
@ -52,7 +52,8 @@ void Pager_object::_page_fault_handler()
|
||||
ipc_pager.fault_addr(), ipc_pager.fault_ip());
|
||||
/* revoke paging capability */
|
||||
Nova::revoke(Nova::Obj_crd(obj->exc_pt_sel() + PT_SEL_PAGE_FAULT, 0), true);
|
||||
ipc_pager.wait_for_fault();
|
||||
Utcb *utcb = (Utcb *)Thread_base::myself()->utcb();
|
||||
utcb->set_msg_word(0);
|
||||
}
|
||||
|
||||
ipc_pager.reply_and_wait_for_fault();
|
||||
@ -70,6 +71,7 @@ void Pager_object::_startup_handler()
|
||||
utcb->eip = obj->_initial_eip;
|
||||
utcb->esp = obj->_initial_esp;
|
||||
utcb->mtd = Mtd::EIP | Mtd::ESP;
|
||||
utcb->set_msg_word(0);
|
||||
reply(Thread_base::myself()->stack_top());
|
||||
}
|
||||
|
||||
@ -82,6 +84,7 @@ void Pager_object::_invoke_handler()
|
||||
/* send single portal as reply */
|
||||
addr_t event = utcb->msg[0];
|
||||
utcb->mtd = 0;
|
||||
utcb->set_msg_word(0);
|
||||
|
||||
if (event == PT_SEL_STARTUP || event == PT_SEL_PAGE_FAULT)
|
||||
utcb->append_item(Obj_crd(obj->_exc_pt_sel + event, 0), 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user