Fiasco.OC: Fix unmap of kernel-capabilities

In the cap-session component in core when freeing a capability, the
corresponding kernel object should be unmapped from all processes and core.
Until now, the unmap operation for removing the kernel object didn't worked
because of using the wrong rights-map. This patch fixes it.

The re-use of capabilities introduced by the last patch triggered this
problem because its essential for the capability-registry to detect
invalidated capabilities.
This commit is contained in:
Stefan Kalkowski 2012-02-27 17:42:52 +01:00 committed by Norman Feske
parent 41eaff2cc6
commit 8f42b58b53
1 changed files with 1 additions and 1 deletions

View File

@ -118,7 +118,7 @@ void Cap_session_component::free(Native_capability cap)
Capability_tree::tree()->remove(n);
l4_msgtag_t tag = l4_task_unmap(L4_BASE_TASK_CAP,
l4_obj_fpage(cap.dst(), 0, 0),
l4_obj_fpage(cap.dst(), 0, L4_FPAGE_RWX),
L4_FP_ALL_SPACES | L4_FP_DELETE_OBJ);
if (l4_msgtag_has_error(tag))
PERR("destruction of ipc-gate %lx failed!", (unsigned long) cap.dst());