mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 02:28:54 +00:00
c3145c1a5d
A kernel capability that is invalid has no kobject pointer, so check whether it's valid beforehand
21 lines
824 B
Diff
21 lines
824 B
Diff
Index: kernel/fiasco/src/kern/task.cpp
|
|
===================================================================
|
|
--- kernel/fiasco/src/kern/task.cpp (revision 38)
|
|
+++ kernel/fiasco/src/kern/task.cpp (working copy)
|
|
@@ -508,10 +508,12 @@
|
|
if (obj_a.special() || obj_b.special())
|
|
return commit_result(obj_a.special_cap() == obj_b.special_cap());
|
|
|
|
- Obj_space::Capability c_a = obj_space()->lookup(obj_a.cap());
|
|
- Obj_space::Capability c_b = obj_space()->lookup(obj_b.cap());
|
|
+ Kobject_iface* ki_a = obj_space()->lookup(obj_a.cap()).obj();
|
|
+ Kobject_iface* ki_b = obj_space()->lookup(obj_b.cap()).obj();
|
|
+ Address a_a = ki_a ? ki_a->kobject_start_addr() : 0;
|
|
+ Address a_b = ki_b ? ki_b->kobject_start_addr() : 0;
|
|
|
|
- return commit_result(c_a == c_b);
|
|
+ return commit_result(a_a == a_b);
|
|
}
|
|
|
|
PRIVATE inline NOEXPORT
|